← Back to team overview

openjdk team mailing list archive

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

 

Hi Nikolaus,

Sorry you're having troubles. Can you explain how you installed mdsplus?
I am unable to reproduce this using Ubuntu 10.04 LTS and following the
instructions for Ubuntu11 and stable in
http://www.mdsplus.org/index.php/Latest_Ubuntu_Packages. Also, attempts
to do simpler things with JNI didn't show anything like this.

Can you strace the open() calls to see what path it's looking for for
libhpi.so, like so:

  strace -o /tmp/jScope.strace -f -e trace=open jScope

That will put the output of the strace in /tmp/jScope.strace.

Another possibility path for debugging would by to modify the jScope
shell script to add '-verbose:jni' to the $java invocation, and
capturing the output. That said, if I did not have libsybdb.so.5
installed, I got a similar error for libsybdb.so.5, and the verbose jni
information did not give anything additionally relevant to it.

I also note that the path of libhpi.so did not change between the two
versions of openjdk-6-jre-headless.

That said, I note that
http://h1svr.anu.edu.au/wiki/Hardware/Computers/prl45 reports a similar
error finding libhpi.so on Ubuntu 12.04 LTS. Due to multiarch changes in
the distribution, I wonder if the patch that was added to openjdk-6 to
fix https://bugs.launchpad.net/ubuntu/+source/openjdk-6/+bug/737603 is
causing problems here.

Thanks.

** Changed in: openjdk-6 (Ubuntu)
       Status: New => Incomplete

-- 
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:
  Incomplete

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