Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6312057

64 bit jvm is not looking at LD_LIBRARY_PATH_64 to find the JNI libraries

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P2 P2
    • 6
    • 7
    • hotspot
    • b53
    • x86
    • linux

      jdk 5 is incorrectly looking at LD_LIBRARY_PATH (even for 64 bit) to load the libraries from java -> native side. Instead it should be looking at LD_LIBRARY_PATH_64 first before looking at LD_LIBRARY_PATH. This issue is blocking web server release.


      web server 7 has a setup like

      native side => loads the JVM => initialized JVM looks at the configuration for class path and then loads the classes. This setup works fine for 32 bit web server.

      For 64 bit web server, we use LD_LIBRARY_PATH_64 to point to the 64 bit libraries. We want JVM to also look only at LD_LIBRARY_PATH_64 to look for the libraries. But looks like some where in the jvm like (java.lang.ClassLoader.loadLibrary) is looking only at LD_LIBRARY_PATH to look for the libraries for both 32 bit as well as for 64 bit.

      If web server just sets LD_LIBRARY_PATH to point to 32 bit libraries and LD_LIBRARY_PATH_64 to point to 64 bit libraries, we get the following error:
      Sun Java System Web Server 7.0 B08/16/2005 19:42
      warning: CORE3283: stderr: java.lang.UnsatisfiedLinkError: /export/home/sn123202/ws7.ms7/iplanet/ias/server/work/B1/SunOS5.8_DBG.OBJ/lib/libj2eeplugin.so: ld.so.1: webservd: fatal: /export/home/sn123202/ws7.ms7/iplanet/ias/server/work/B1/SunOS5.8_DBG.OBJ/lib/libj2eeplugin.so: wrong ELF class: ELFCLASS32
      warning: CORE3283: stderr: at java.lang.ClassLoader$NativeLibrary.load(Native Method)
      warning: CORE3283: stderr: at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1751)
      warning: CORE3283: stderr: at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1676)
      warning: CORE3283: stderr: at java.lang.Runtime.loadLibrary0(Runtime.java:822)
      warning: CORE3283: stderr: at java.lang.System.loadLibrary(System.java:992)
      warning: CORE3283: stderr: at com.sun.enterprise.web.connector.nsapi.logging.NSAPIServerHandler.<clinit>(NSAPIServerHandler.java:29)
      warning: CORE3283: stderr: at com.iplanet.ias.server.logging.ServerLogManager$1.run(ServerLogManager.java:175)
      warning: CORE3283: stderr: at java.security.AccessController.doPrivileged(Native Method)
      warning: CORE3283: stderr: at com.iplanet.ias.server.logging.ServerLogManager.initializeServerLogger(ServerLogManager.java:166)
      warning: CORE3283: stderr: at com.iplanet.ias.server.logging.ServerLogManager.initializeLogger(ServerLogManager.java:253)
      warning: CORE3283: stderr: at com.iplanet.ias.server.logging.BaseLogManager.doInitialize
      Logger(BaseLogManager.java:99)
      warning: CORE3283: stderr: at com.iplanet.ias.server.logging.BaseLogManager.addLogger(Ba
      seLogManager.java:148)
      warning: CORE3283: stderr: at java.util.logging.Logger.getLogger(Logger.java:232)
      warning: CORE3283: stderr: at org.apache.commons.logging.impl.Jdk14Logger.<init>(Jdk14Lo
      gger.java:96)
      warning: CORE3283: stderr: at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Nat
      ive Method)
      warning: CORE3283: stderr: at sun.reflect.NativeConstructorAccessorImpl.newInstance(Nati
      veConstructorAccessorImpl.java:39)
      warning: CORE3283: stderr: at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(
      DelegatingConstructorAccessorImpl.java:27)
      warning: CORE3283: stderr: at java.lang.reflect.Constructor.newInstance(Constructor.java
      :494)
      warning: CORE3283: stderr: at org.apache.commons.logging.impl.LogFactoryImpl.newInstance
      (LogFactoryImpl.java:548)
      warning: CORE3283: stderr: at org.apache.commons.logging.impl.LogFactoryImpl.getInstance
      (LogFactoryImpl.java:289)
      warning: CORE3283: stderr: at org.apache.commons.logging.impl.LogFactoryImpl.getInstance
      (LogFactoryImpl.java:259)
      warning: CORE3283: stderr: at org.apache.commons.logging.LogFactory.getLog(LogFactory.ja
      va:390)
      warning: CORE3283: stderr: at org.apache.catalina.util.StringManager.<clinit>(StringMana
      ger.java:57)
      warning: CORE3283: stderr: at com.iplanet.ias.server.J2EERunner.<clinit>(J2EERunner.java
      :61)
      warning: CORE3283: stderr: java.lang.NoClassDefFoundError
      warning: CORE3283: stderr: at com.iplanet.ias.server.logging.ServerLogManager$1.run(Serv
      erLogManager.java:175)
      warning: CORE3283: stderr: at java.security.AccessController.doPrivileged(Native Method)
      warning: CORE3283: stderr: at com.iplanet.ias.server.logging.ServerLogManager.initialize
      ServerLogger(ServerLogManager.java:166)
      warning: CORE3283: stderr: at com.iplanet.ias.server.logging.ServerLogManager.initialize
      Logger(ServerLogManager.java:253)
      warning: CORE3283: stderr: at com.iplanet.ias.server.logging.BaseLogManager.doInitialize
      Logger(BaseLogManager.java:99)
      warning: CORE3283: stderr: at com.iplanet.ias.server.logging.BaseLogManager.addLogger(Ba
      seLogManager.java:148)
      warning: CORE3283: stderr: at java.util.logging.Logger.getLogger(Logger.java:232)
      warning: CORE3283: stderr: at org.apache.commons.logging.impl.Jdk14Logger.<init>(Jdk14Lo
      gger.java:96)
      warning: CORE3283: stderr: at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Nat
      ive Method)
      warning: CORE3283: stderr: at sun.reflect.NativeConstructorAccessorImpl.newInstance(Nati
      veConstructorAccessorImpl.java:39)
      warning: CORE3283: stderr: at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(
      DelegatingConstructorAccessorImpl.java:27)
      warning: CORE3283: stderr: at java.lang.reflect.Constructor.newInstance(Constructor.java
      :494)warning: CORE3283: stderr: at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:548)
      warning: CORE3283: stderr: at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:289)
      warning: CORE3283: stderr: at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:259)
      warning: CORE3283: stderr: at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:390)
      warning: CORE3283: stderr: at org.apache.catalina.util.StringManager.<clinit>(StringManager.java:57)
      warning: CORE3283: stderr: at com.iplanet.ias.server.J2EERunner.<clinit>(J2EERunner.java:61)
      failure: CORE4013: Internal error: Unable to create Java object: com/iplanet/ias/server/J2EERunner
      failure: CORE4007: Internal error: Unexpected Java exception thrown (java.lang.UnsatisfiedLinkError: getServerRoot, getServerRoot), stack: java.lang.UnsatisfiedLinkError: getServerRoot
              at com.sun.enterprise.web.connector.nsapi.NSAPIRunner.getServerRoot(Native Method)
              at com.iplanet.ias.server.J2EERunner.<init>(J2EERunner.java:31)

      failure: CORE2253: Error running Init function load-modules: initialization of libj2eeplugin.so failed

      If web server 7 (64 bit) internally sets LD_LIBRARY_PATH=$LD_LIBRARY_PATH_64 at the time of starting the server, jvm is able to find the classes and right libraries perfectly fine. This is not acceptable for ws7 64 bit release.

      Really appreciate if some one can look into this and fix it as soon as possible.

            sbohne Steve Bohne (Inactive)
            srsrnata Sriram Natarajan (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: