Re: [jruby-user] JRuby 1.7.17: getppid unsupported or native support failed to load

Michael Pitman <[email protected]> Sat, 20 Dec 2014 11:36:19 +1100
Newsgroups gmane.comp.lang.jruby.user
Message-ID <CAL-6QiWBz54vCPrNz4ZB4qt1SWucWMXDY0fvPju7Wq5GZd=qaQ@mail.gmail.com>
Hi Tom,

Thanks for that, it certainly detected the underlying problem:

> jruby -Xnative.verbose=true -e 'p Process.ppid'

Failed to load native POSIX impl; falling back on Java impl. Stacktrace
follows.
java.lang.UnsatisfiedLinkError: libcrypt.so: cannot open shared object
file: No such file or directory
at
jnr.ffi.provider.jffi.NativeLibrary.loadNativeLibraries(NativeLibrary.java:87)
at
jnr.ffi.provider.jffi.NativeLibrary.getNativeLibraries(NativeLibrary.java:70)
at
jnr.ffi.provider.jffi.NativeLibrary.getSymbolAddress(NativeLibrary.java:49)
at
jnr.ffi.provider.jffi.NativeLibrary.findSymbolAddress(NativeLibrary.java:59)
at
jnr.ffi.provider.jffi.AsmLibraryLoader.generateInterfaceImpl(AsmLibraryLoader.java:117)
at
jnr.ffi.provider.jffi.AsmLibraryLoader.loadLibrary(AsmLibraryLoader.java:59)
at
jnr.ffi.provider.jffi.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:43)
at jnr.ffi.LibraryLoader.load(LibraryLoader.java:265)
at jnr.ffi.Library.loadLibrary(Library.java:123)
at
jnr.posix.POSIXFactory$DefaultLibCProvider$SingletonHolder.<clinit>(POSIXFactory.java:223)
at jnr.posix.POSIXFactory$DefaultLibCProvider.getLibC(POSIXFactory.java:227)
at jnr.posix.BaseNativePOSIX.<init>(BaseNativePOSIX.java:36)
at jnr.posix.LinuxPOSIX.<init>(LinuxPOSIX.java:18)
at jnr.posix.POSIXFactory.loadLinuxPOSIX(POSIXFactory.java:95)
at jnr.posix.POSIXFactory.loadNativePOSIX(POSIXFactory.java:69)
at jnr.posix.POSIXFactory.loadPOSIX(POSIXFactory.java:38)
at jnr.posix.LazyPOSIX.loadPOSIX(LazyPOSIX.java:35)
at jnr.posix.LazyPOSIX.posix(LazyPOSIX.java:31)
at jnr.posix.LazyPOSIX.umask(LazyPOSIX.java:301)
at org.jruby.RubyFile.getUmaskSafe(RubyFile.java:1514)
...
NotImplementedError: getppid unsupported or native support failed to load


The machine has libcrypt installed:

> ldconfig -p  | grep libcrypt
libcrypto.so.1.0.0 (libc6,x86-64) =>
/lib/x86_64-linux-gnu/libcrypto.so.1.0.0
libcrypto.so.0.9.8 (libc6,x86-64) =>
/lib/x86_64-linux-gnu/libcrypto.so.0.9.8
libcrypto.so.0.9.8 (libc6,x86-64) =>
/usr/lib/x86_64-linux-gnu/libcrypto.so.0.9.8
libcrypt.so.1 (libc6,x86-64, OS ABI: Linux 2.6.24) =>
/lib/x86_64-linux-gnu/libcrypt.so.1


But it's not installed as libcrypt.so, since the package libc6 is
installed, but not libc6-dev, which installs and links that file. It also
explains why this is working on our dev machines, but not on the
production-like boxes.

I'd rather not ask our clients to install development libraries on their
production machines, so is it possible to coerce jruby to use the library
installed as .so.1  if it is found?

Thanks,

Michael





On 20 December 2014 at 01:36, Thomas E Enebo <[email protected]> wrote:
>
> Can you try jruby -Xnative.verbose=true -e 'p Process.ppid'?  Can you also
> tell me whether this machine has libcrypt?  That was the main change to
> jnr-posix around 1.7.17's release.
>
> -Tom
>
> On Thu, Dec 18, 2014 at 3:37 PM, Michael Pitman <[email protected]
> > wrote:
>>
>> Hi,
>>
>> I'm getting an error trying to run a "runnable" war on one of our
>> production (Ubuntu 12.04) machines under jruby 1.7.17. We have isolated it
>> just to 1.7.17, since it works OK when using 1.7.16.2, and all other gems
>> and code are identical.
>>
>> There must be something on that machining that's triggering this to
>> happen, since the exact same war file works on other machines. The machine
>> was failing while running java version 1.7.0_21, but I upgraded java
>> to 1.7.0_72 and it continues to fail.
>>
>> Anyway, below is the stack trace, and I'd appreciate any help in
>> resolving the issue. Below that I've listed the linked library versions, if
>> that's any help.
>>
>> Thanks very much,
>>
>> Michael
>>
>> NotImplementedError: getppid unsupported or native support failed to load
>> org/jruby/RubyProcess.java:752:in `ppid'
>> org/jruby/RubyProcess.java:749:in `ppid'
>> /tmp/jruby8149531281028435272extract/gems/gems/systemu-2.6.4/lib/systemu.rb:28:in
>> `SystemUniversal'
>> /tmp/jruby8149531281028435272extract/gems/gems/systemu-2.6.4/lib/systemu.rb:13:in
>> `(root)'
>> org/jruby/RubyKernel.java:1071:in `require'
>> /tmp/jruby8149531281028435272extract/gems/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:251:in
>> `require'
>> /tmp/jruby8149531281028435272extract/gems/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:236:in
>> `load_dependency'
>> /tmp/jruby8149531281028435272extract/gems/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:251:in
>> `require'
>> /tmp/jruby8149531281028435272extract/gems/gems/macaddr-1.7.1/lib/macaddr.rb:1:in
>> `(root)'
>> org/jruby/RubyKernel.java:1071:in `require'
>> /tmp/jruby8149531281028435272extract/gems/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:251:in
>> `require'
>> /tmp/jruby8149531281028435272extract/gems/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:236:in
>> `load_dependency'
>> /tmp/jruby8149531281028435272extract/gems/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:251:in
>> `require'
>> /tmp/jruby8149531281028435272extract/gems/gems/macaddr-1.7.1/lib/macaddr.rb:23:in
>> `(root)'
>> org/jruby/RubyKernel.java:1071:in `require'
>> /tmp/jruby8149531281028435272extract/gems/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:251:in
>> `require'
>> /tmp/jruby8149531281028435272extract/gems/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:236:in
>> `load_dependency'
>> /tmp/jruby8149531281028435272extract/gems/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:251:in
>> `require'
>> /tmp/jruby8149531281028435272extract/gems/gems/uuid-2.3.7/lib/uuid.rb:1:in
>> `(root)'
>> org/jruby/RubyKernel.java:1071:in `require'
>> /tmp/jruby8149531281028435272extract/gems/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:251:in
>> `require'
>> /tmp/jruby8149531281028435272extract/gems/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:236:in
>> `load_dependency'
>> /tmp/jruby8149531281028435272extract/gems/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:251:in
>> `require'
>> /tmp/jruby8149531281028435272extract/gems/gems/uuid-2.3.7/lib/uuid.rb:14:in
>> `(root)'
>> org/jruby/RubyKernel.java:1071:in `require'
>> /tmp/jruby8149531281028435272extract/gems/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:251:in
>> `require'
>> /tmp/jruby8149531281028435272extract/gems/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:236:in
>> `load_dependency'
>> /tmp/jruby8149531281028435272extract/gems/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:251:in
>> `require'
>> /tmp/jruby8149531281028435272extract/gems/gems/savon-2.8.0/lib/savon/header.rb:1:in
>> `(root)'
>> org/jruby/RubyKernel.java:1071:in `require'
>> /tmp/jruby8149531281028435272extract/gems/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:251:in
>> `require'
>> /tmp/jruby8149531281028435272extract/gems/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:236:in
>> `load_dependency'
>> /tmp/jruby8149531281028435272extract/gems/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:251:in
>> `require'
>> /tmp/jruby8149531281028435272extract/gems/gems/savon-2.8.0/lib/savon/header.rb:3:in
>> `(root)'
>> org/jruby/RubyKernel.java:1071:in `require'
>> /tmp/jruby8149531281028435272extract/gems/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:251:in
>> `require'
>> /tmp/jruby8149531281028435272extract/gems/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:236:in
>> `load_dependency'
>> /tmp/jruby8149531281028435272extract/gems/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:251:in
>> `require'
>> /tmp/jruby8149531281028435272extract/gems/gems/savon-2.8.0/lib/savon/builder.rb:1:in
>> `(root)'
>> org/jruby/RubyKernel.java:1071:in `require'
>> /tmp/jruby8149531281028435272extract/gems/gems/savon-2.8.0/lib/savon/builder.rb:1:in
>> `(root)'
>> org/jruby/RubyArray.java:1613:in `each'
>> /tmp/jruby8149531281028435272extract/gems/gems/savon-2.8.0/lib/savon/operation.rb:1:in
>> `(root)'
>> org/jruby/RubyArray.java:1613:in `each'
>> /tmp/jruby8149531281028435272extract/gems/gems/savon-2.8.0/lib/savon/operation.rb:4:in
>> `(root)'
>> /tmp/jruby8149531281028435272extract/gems/gems/savon-2.8.0/lib/savon/client.rb:1:in
>> `(root)'
>> /tmp/jruby8149531281028435272extract/gems/gems/savon-2.8.0/lib/savon/client.rb:1:in
>> `(root)'
>> org/jruby/RubyKernel.java:1071:in `require'
>> /tmp/jruby8149531281028435272extract/gems/gems/savon-2.8.0/lib/savon.rb:1:in
>> `(root)'
>> org/jruby/RubyKernel.java:1087:in `load'
>> /tmp/jruby8149531281028435272extract/gems/gems/savon-2.8.0/lib/savon.rb:26:in
>> `(root)'
>> /tmp/jruby8149531281028435272extract/gems/gems/bundler-1.7.8/lib/bundler/runtime.rb:1:in
>> `(root)'
>> /tmp/jruby8149531281028435272extract/gems/gems/bundler-1.7.8/lib/bundler/runtime.rb:76:in
>> `require'
>> /tmp/jruby8149531281028435272extract/gems/gems/bundler-1.7.8/lib/bundler/runtime.rb:72:in
>> `require'
>> /tmp/jruby8149531281028435272extract/gems/gems/bundler-1.7.8/lib/bundler/runtime.rb:61:in
>> `require'
>> /tmp/jruby8149531281028435272extract/gems/gems/bundler-1.7.8/lib/bundler.rb:134:in
>> `require'
>> /tmp/jruby8149531281028435272extract/config/application.rb:13:in `(root)'
>> /tmp/jruby8149531281028435272extract/Rakefile:1:in `(root)'
>> /tmp/jruby8149531281028435272extract/gems/gems/rake-10.4.2/bin/rake:36:in
>> `(root)'
>> error: org.jruby.exceptions.RaiseException: (SystemExit) exit
>>
>>
>>
>>
>>
>> > ldd `which java`
>> linux-vdso.so.1 =>  (0x00007fffa53fe000)
>> libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
>> (0x00007fb13ca13000)
>> libjli.so => not found
>> libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fb13c80e000)
>> libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb13c44f000)
>> /lib64/ld-linux-x86-64.so.2 (0x00007fb13cc36000)
>>
>> /lib/x86_64-linux-gnu/libpthread.so.0 -> libpthread-2.15.so
>> /lib/x86_64-linux-gnu/libdl.so.2 -> libdl-2.15.so
>> /lib/x86_64-linux-gnu/libc.so.6 -> libc-2.15.so
>> /lib64/ld-linux-x86-64.so.2 -> /lib/x86_64-linux-gnu/ld-2.15.so
>>
>>
>>
>
> --
> blog: http://blog.enebo.com       twitter: tom_enebo
> mail: [email protected]
>