← Back to team overview

openjdk team mailing list archive

[Bug 1027122] Re: JNI applications fail because shared libraries cannot be found

 

Hi Nikolaus,

Sorry, I've been unable to reproduce this issue. Can you tell me
specifically what version of MDSplus version you're running, as well as
any specific configure options that you built it with, so I can further
attempt to reproduce what you're seeing? I also tried running
NativeTest.java from bug 737603 as you did and it loaded the JavaMDS
library just fine; however, I noticed when strace'ing it that it never
attempted to open libhpi.so in doing so, and I'm not sure why (hence my
asking for configure options that may affect this).

I should also point out that bug 737603 is a bit of a red herring; I re-
examined the openjdk-6 packaging and the patch for bug 737603 is
included in the package but is not actually applied during the build (I
was going to prepare a test package for you with that patch
disabled...).

A couple more things to look at to diagnose this:

* can you run 'ldd /opt/mdsplus/lib/libJavaMds.so' to confirm that it's
the library itself that has the dependency on libhpi.so?

* can you re-run the NativeTest.java test, both with the older version
of java installed where it succeeds and the failing versions, with the
addition of the LD_DEBUG environment variable set to 'all' (i.e. add
'LD_DEBUG=all' to the command line)? I'd like to see what symbols are
causing libhpi.so to get pulled in and how the resolution is happening.

Thanks, and my apologies for the difficulties this upgrade has caused.

-- 
You received this bug notification because you are a member of OpenJDK,
which is subscribed to openjdk-6 in Ubuntu.
https://bugs.launchpad.net/bugs/1027122

Title:
  JNI applications fail because shared libraries cannot be found

Status in “openjdk-6” package in Ubuntu:
  New

Bug description:
  The update from OpenJDK 6b20-1.9.13-0ubuntu1~10.04.1 to
  6b21.2-2ubuntu0.10.04.1 in Lucid broke JNI applications. Attempts to
  run a JNI application now crash with:

  $ jScope
  Load library java.lang.UnsatisfiedLinkError: /opt/mdsplus/lib/libJavaMds.so: libhpi.so: cannot open shared object file: No such file or directory
  java.lang.UnsatisfiedLinkError: /opt/mdsplus/lib/libJavaMds.so: libhpi.so: cannot open shared object file: No such file or directory
   at java.lang.ClassLoader$NativeLibrary.load(Native Method)
   at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1750)
   at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1675)
   at java.lang.Runtime.loadLibrary0(Runtime.java:840)
   at java.lang.System.loadLibrary(System.java:1047)
   at jScope.LocalDataProvider.<clinit>(LocalDataProvider.java:192)
   at java.lang.Class.forName0(Native Method)/
   at java.lang.Class.forName(Class.java:186)
   at jScope.jScopeWaveContainer.SetDataServer(jScopeWaveContainer.java:1360)

  Downgrading all packages created by the OpenJDK source package to
  6b20-1.9.13-0ubuntu1~10.04.1 fixes the problem.

  libhpi.so is located in
  /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/native_threads/libhpi.so, so
  the problem can be temporarily fixed by setting
  LD_LIBRARY_PATH=/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/native_threads/.
  However, this path is of course very dependent on the used JRE, so it
  needs to be set by java itself.

  ProblemType: Bug
  DistroRelease: Ubuntu 10.04
  Package: openjdk-6-jre-headless 6b24-1.11.3-1ubuntu0.10.04.1
  ProcVersionSignature: Ubuntu 3.0.0-23.38~lucid1-server 3.0.36
  Uname: Linux 3.0.0-23-server x86_64
  Architecture: amd64
  Date: Fri Jul 20 11:11:48 2012
  ProcEnviron:
   PATH=(custom, user)
   LANG=en_US.UTF-8
   SHELL=/bin/bash
  SourcePackage: openjdk-6

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openjdk-6/+bug/1027122/+subscriptions


References