[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: The v4 dependency chain - issues with therubyracer and v8



I think that's a misleading error message. The rubygem v8 is loading /opt/rh/ruby193/root/usr/lib64/gems/exts/therubyracer-0.11.0beta5/lib/v8/init.so, which in turn is trying to load libv8.so.v8314-3.14.5, not the other way around.

It looks like libv8.so.v8314-3.14.5 is not on the dynamic linker path since it's in /opt/rh/v8314/root/usr/lib64, but that path isn't added when using the ruby193 SCL.

You can see the error (where '>' is my shell)

    > enable ruby193 irb
    irb(main):001:0> require 'v8'
    LoadError: libv8.so.v8314-3.14.5: cannot open shared object file: No such file or directory - /opt/rh/ruby193/root/usr/lib64/gems/exts/therubyracer-0.11.0beta5/lib/v8/init.so
        from /opt/rh/ruby193/root/usr/share/rubygems/rubygems/custom_require.rb:36:in `require'        from /opt/rh/ruby193/root/usr/share/rubygems/rubygems/custom_require.rb:36:in `require'
        from /opt/rh/ruby193/root/usr/share/gems/gems/therubyracer-0.11.0beta5/lib/v8.rb:4:in `<top (required)>'
        from /opt/rh/ruby193/root/usr/share/rubygems/rubygems/custom_require.rb:60:in `require'
        from /opt/rh/ruby193/root/usr/share/rubygems/rubygems/custom_require.rb:60:in `rescue in require'
        from /opt/rh/ruby193/root/usr/share/rubygems/rubygems/custom_require.rb:35:in `require'
        from (irb):1
        from /opt/rh/ruby193/root/usr/bin/irb:12:in `<main>'

But if you add '/opt/rh/v8314/root/usr/lib64' to your linker path:

    > export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/rh/v8314/root/usr/lib64
    > scl enable ruby193 irb
    irb(main):001:0> require 'v8'
    => true


On Wed, Jul 30, 2014 at 10:26 AM, Kevin Conaway <kevin conaway gmail com> wrote:
Here is what I have installed on my broker system:

yum info ruby193-rubygem-therubyracer
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * extras: mirror.hmc.edu
Installed Packages
Name        : ruby193-rubygem-therubyracer
Arch        : x86_64
Version     : 0.11.0
Release     : 0.8.beta5.el6
Size        : 228 k
Repo        : installed
From repo   : openshift-origin-deps
Summary     : Embed the V8 _javascript_ interpreter into Ruby
License     : MIT
Description : Call _javascript_ code and manipulate _javascript_ objects from ruby. Call ruby
            : code and manipulate ruby objects from _javascript_.

When I attempt to run "rake assets:precompile" for the web console, I get an error (see trace here http://pastebin.com/Xu2vywZg)

I dug in to the error a bit and found that /opt/rh/ruby193/root/usr/share/gems/gems/execjs-1.4.0/lib/execjs/ruby_racer_runtime.rb is running in to an error when it tries to require in the "v8" module:

libv8.so.v8314-3.14.5: cannot open shared object file: No such file or directory - /opt/rh/ruby193/root/usr/lib64/gems/exts/therubyracer-0.11.0beta5/lib/v8/init.so

However, that file does exist and is accessible:

ls -l /opt/rh/ruby193/root/usr/lib64/gems/exts/therubyracer-0.11.0beta5/lib/v8/
-rwxr-xr-x 1 root root 201496 Mar 11 10:29 init.so




On Wed, Jul 30, 2014 at 10:19 AM, N. Harrison Ripps <hripps redhat com> wrote:

> On Jul 30, 2014, at 10:01, Kevin Conaway <kevin conaway gmail com> wrote:
>
> At least on my system, it appears the v8314-v8 RPM is already installed as part of installing the dependencies for the console or something else.

Okay, so two questions:

1. Per Troy's feedback, do you have this version of therubyracer RPM: ruby193-rubygem-therubyracer-0.11.0-0.8.beta5.el6.x86_64.rpm
2. If so, what is the specific problem that is happening?

>
>
> On Wed, Jul 30, 2014 at 9:46 AM, N. Harrison Ripps <hripps redhat com> wrote:
> Hey all--
> I am hoping to consolidate discussion of the dependency chain for Origin v4 under one thread; there are at least two others right now and they are covering very similar ground.
>
> Here's some perspective on what is happening.
>
> >From the ruby193 software collection (SCL), we use the ruby193-rubygem-therubyracer RPM. This gem depends on an RPM from a different SCL, specifically, the v8314-v8 RPM from the v8314 SCL. And from our perspective, this would all "just work" if the ruby193-rubygem-therubyracer included v8314-v8 as a specific dependency. However, it doesn't. The answer to "why" is one that I hope to have soon, but in the meantime, there are other ways to solve the problem.
>
> I think the best short-term way to solve this issue will be for us to instead make the v8314-v8 RPM a dependency of our own RPMs, specifically the ones that also depend upon therubyracer:
>
> * openshift-origin-console
> * rubygem-openshift-origin-console
> * openshift-origin-admin-console
> * rubygem-openshift-origin-admin-console
>
> A number of you have been looking at other workarounds, and my main concern with those is that they won't survive a "yum update" down the road.
>
> So hopefully this answers some questions around why this is happening and what we are planning to do to solve the problem. Please feel free to follow up with your own findings, or any questions or concerns that you may have. As always, I am really appreciative of the folks who take the time to report on these matters, so thank you very much for bringing your findings to the community!
>
> --Harrison
>
>
> _______________________________________________
> dev mailing list
> dev lists openshift redhat com
> http://lists.openshift.redhat.com/openshiftmm/listinfo/dev
>



_______________________________________________
dev mailing list
dev lists openshift redhat com
http://lists.openshift.redhat.com/openshiftmm/listinfo/dev



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]