IBM Support

IV38628: JVM crashes due to a SIGSEGV occurred in a third party JNI library on AIX platform

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Error Message: Symbol conflict happened for a function symbol
    (readBytes) between JDK  and third party native library on AIX
    operating system
    
    
    
    Stack Trace:
    SIGSEGV raised in customer library  (memory access error)
    
    xxxxx  .readBytes +
    libjava.so  .Java_java_io_FileInputStream_readBytes +
    libj9vm26.so  .VMprJavaSendNative + 0648
    libjclse7b_26.so .java_lang_J9VMInternals_initializeImpl + 00D0
    libj9vm26.so  .resolveStaticMethodRefInto + 0184
    libj9vm26.so  .resolveStaticMethodRef + 0034
    libj9vm26.so  .resolveHelper + 033C
    .
    

Local fix

  • The problem can be work around by the following options:
    1) Disable run-time linking of the JNI application.
    2) Modify the conflicting symbol on the JNI application.
    3) Preloading JDK library (LDR_PRELOAD libjava.so)
    

Problem summary

  • When run-time linking is enabled,  the symbol resolution is
    picked from the first loaded library. When the JNI application
    has a conflicting function symbol with JDK and  if the
    application library is loaded first, then the JDK call to the
    conflicting function symbol will invoke the function from the
    JNI application. This can lead to unpredictable behavior and
    result in the crash. In this case the conflicting symbol can be
    confined to a local scope and can be fixed from JDK side.
    However, in general, if runtime linking causes a symbol
    conflict, the application must resolve the conflict by renaming
    the symbol on the application side, or turning off runtime
    linking.
    .
    

Problem conclusion

  • This defect will be fixed in:
    7.0.0 SR5
    .
    The JDK has been updated to limit the scope of symbols to avoid
    the symbol conflict.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV38628

  • Reported component name

    JAVA CLASS LIBS

  • Reported component ID

    620700130

  • Reported release

    700

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2013-03-26

  • Closed date

    2013-05-07

  • Last modified date

    2013-05-08

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    JAVA CLASS LIBS

  • Fixed component ID

    620700130

Applicable component levels

  • R700 PSY

       UP

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSNVBF","label":"Runtimes for Java Technology"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.0","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
21 February 2022