IBM Support

IV34348: GETLOADEDCLASSES() WITH SRT CAUSED CRASHES IN GC

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • Error Message: Unhandled exception
    Type=Segmentation error vmState=0x00020002
    J9Generic_Signal_Number=00000004 Signal_Number=0000000b
    Error_Value=00000000 Signal_Code=00000001
    Handler1=F6D38D09 Handler2=F6CF9257 InaccessibleAddress=0000000C
    EDI=00000001 ESI=00000000 EAX=080708F0 EBX=F62FA200
    ECX=D9E90390 EDX=08070880
    EIP=F61FDF9E ES=002B DS=002B ESP=938D8FA0
    EFlags=00010246 CS=0023 SS=002B EBP=938D90A8
    Module=/jtctest/sdk_installs_hc/ESPRESSO/PKG/pxi3270sr3/pxi3270s
    r3-20121025_01/ibm-java-i386-70/jre/lib/i386/default/libj9gc26.s
    o
    Module_base_address=F614D000
    Target=2_60_20121024_126071 (Linux 3.0.38-0.5-default)
    CPU=x86 (4 logical CPUs) (0xf7926000 RAM)
    .
    Stack Trace: p> 20121102-14:39:22 <gdb> #0  0xf6c5e8fa in
    j9dump_create () from
    /jtctest/sdk_installs_hc/ESPRESSO/PKG/pxi3270sr3/pxi3270sr3-2012
    1025_01/ibm-java-
    i386-70/jre/lib/i386/default/libj9prt26.so
    p> 20121102-14:39:22 <gdb> #1  0xf699ae4e in doSystemDump ()
    from
    /jtctest/sdk_installs_hc/ESPRESSO/PKG/pxi3270sr3/pxi3270sr3-2012
    1025_01/ibm-java-
    i386-70/jre/lib/i386/default/libj9dmp26.so
    p> 20121102-14:39:22 <gdb> #2  0xf6999627 in
    protectedDumpFunction () from
    /jtctest/sdk_installs_hc/ESPRESSO/PKG/pxi3270sr3/pxi3270sr3-
    20121025_01/ibm-java-i386-70/jre/lib/i386/default/libj9dmp26.so
    p> 20121102-14:39:22 <gdb> #3  0xf6c6e202 in j9sig_protect ()
    from
    /jtctest/sdk_installs_hc/ESPRESSO/PKG/pxi3270sr3/pxi3270sr3-2012
    1025_01/ibm-java-
    i386-70/jre/lib/i386/default/libj9prt26.so
    p> 20121102-14:39:22 <gdb> #4  0xf69995f8 in runDumpFunction ()
    from
    /jtctest/sdk_installs_hc/ESPRESSO/PKG/pxi3270sr3/pxi3270sr3-2012
    1025_01/ibm-
    java-i386-70/jre/lib/i386/default/libj9dmp26.so
    p> 20121102-14:39:22 <gdb> #5  0xf699e555 in runDumpAgent ()
    from
    /jtctest/sdk_installs_hc/ESPRESSO/PKG/pxi3270sr3/pxi3270sr3-2012
    1025_01/ibm-java-
    i386-70/jre/lib/i386/default/libj9dmp26.so
    p> 20121102-14:39:22 <gdb> #6  0xf69b1947 in triggerDumpAgents
    () from
    /jtctest/sdk_installs_hc/ESPRESSO/PKG/pxi3270sr3/pxi3270sr3-2012
    1025_01/ibm-
    java-i386-70/jre/lib/i386/default/libj9dmp26.so
    p> 20121102-14:39:22 <gdb> #7  0xf6cac197 in
    generateDiagnosticFiles () from
    /jtctest/sdk_installs_hc/ESPRESSO/PKG/pxi3270sr3/pxi3270sr3-
    20121025_01/ibm-java-i386-70/jre/lib/i386/default/libj9vm26.so
    p> 20121102-14:39:22 <gdb> #8  0xf6c6e202 in j9sig_protect ()
    from
    /jtctest/sdk_installs_hc/ESPRESSO/PKG/pxi3270sr3/pxi3270sr3-2012
    1025_01/ibm-java-
    i386-70/jre/lib/i386/default/libj9prt26.so
    p> 20121102-14:39:22 <gdb> #9  0xf6cac3ae in vmSignalHandler ()
    from
    /jtctest/sdk_installs_hc/ESPRESSO/PKG/pxi3270sr3/pxi3270sr3-2012
    1025_01/ibm-
    java-i386-70/jre/lib/i386/default/libj9vm26.so
    p> 20121102-14:39:22 <gdb> #10 0xf6caccc8 in
    structuredSignalHandler () from
    /jtctest/sdk_installs_hc/ESPRESSO/PKG/pxi3270sr3/pxi3270sr3-
    20121025_01/ibm-java-i386-70/jre/lib/i386/default/libj9vm26.so
    p> 20121102-14:39:22 <gdb> #11 0xf6cacd3b in
    structuredSignalHandlerForJavaVM () from
    /jtctest/sdk_installs_hc/ESPRESSO/PKG/pxi3270sr3/pxi3270sr3-
    20121025_01/ibm-java-i386-70/jre/lib/i386/default/libj9vm26.so
    p> 20121102-14:39:22 <gdb> #12 0xf6c6d425 in
    masterSynchSignalHandler () from
    /jtctest/sdk_installs_hc/ESPRESSO/PKG/pxi3270sr3/pxi3270sr3-
    20121025_01/ibm-java-i386-70/jre/lib/i386/default/libj9prt26.so
    p> 20121102-14:39:22 <gdb> #13 <signal handler called>
    p> 20121102-14:39:22 <gdb> #14 0xf6171f9e in
    MM_RealtimeMarkingScheme::incrementalConsumeQueue(MM_Environment
    Realtime*, unsigned int) () from
    /jtctest/sdk_installs_hc/ESPRESSO/PKG/pxi3270sr3/pxi3270sr3-2012
    1025_01/ibm-java-i386-70/jre/lib/i386/default/libj9gc26.so
    p> 20121102-14:39:22 <gdb> #15 0xf615e9ed in
    MM_StaccatoGC::doTracing(MM_EnvironmentRealtime*) () from
    /jtctest/sdk_installs_hc/ESPRESSO/PKG/pxi3270sr3/pxi3270sr3-2012
    1025_01/ibm-java-i386-70/jre/lib/i386/default/libj9gc26.so
    p> 20121102-14:39:22 <gdb> #16 0xf61753ad in
    MM_RealtimeMarkingScheme::markLiveObjects(MM_EnvironmentRealtime
    *) () from
    /jtctest/sdk_installs_hc/ESPRESSO/PKG/pxi3270sr3/pxi3270sr3-2012
    1025_01/ibm-java-i386-70/jre/lib/i386/default/libj9gc26.so
    p> 20121102-14:39:22 <gdb> #17 0xf6171b9d in
    MM_RealtimeMarkTask::run(MM_EnvironmentModron*) () from
    /jtctest/sdk_installs_hc/ESPRESSO/PKG/pxi3270sr3/pxi3270sr3-2012
    1025_01/ibm-java-i386-70/jre/lib/i386/default/libj9gc26.so
    p> 20121102-14:39:22 <gdb> #18 0xf622749e in
    MM_Dispatcher::run(MM_EnvironmentModron*, MM_Task*) () from
    /jtctest/sdk_installs_hc/ESPRESSO/PKG/pxi3270sr3/pxi3270sr3-2012
    1025_01/ibm-java-i386-70/jre/lib/i386/default/libj9gc26.so
    p> 20121102-14:39:22 <gdb> #19 0xf61711b9 in
    MM_RealtimeGC::incrementalCollect(MM_EnvironmentRealtime*) ()
    from
    /jtctest/sdk_installs_hc/ESPRESSO/PKG/pxi3270sr3/pxi3270sr3-2012
    1025_01/ibm-java-i386-70/jre/lib/i386/default/libj9gc26.so
    p> 20121102-14:39:22 <gdb> #20 0xf617154b in
    MM_RealtimeGC::internalGarbageCollect(MM_EnvironmentModron*,
    MM_MemorySubSpace*,
    MM_AllocateDescription*) () from
    /jtctest/sdk_installs_hc/ESPRESSO/PKG/pxi3270sr3/pxi3270sr3-2012
    1025_01/ibm-java-i386-
    70/jre/lib/i386/default/libj9gc26.so
    p> 20121102-14:39:22 <gdb> #21 0xf60e6705 in
    MM_Collector::garbageCollect(MM_EnvironmentModron*,
    MM_MemorySubSpace*, MM_AllocateDescription*,
    unsigned int, MM_ObjectAllocationInterface*, MM_MemorySubSpace*,
    MM_AllocationContext*) () from
    /jtctest/sdk_installs_hc/ESPRESSO/PKG/pxi3270sr3/pxi3270sr3-2012
    1025_01/ibm-java-i386-70/jre/lib/i386/default/libj9gc26.so
    p> 20121102-14:39:22 <gdb> #22 0xf616a896 in
    MM_MemorySubSpaceMetronome::collect(MM_EnvironmentModron*,
    MM_GCCode) () from
    /jtctest/sdk_installs_hc/ESPRESSO/PKG/pxi3270sr3/pxi3270sr3-2012
    1025_01/ibm-java-i386-70/jre/lib/i386/default/libj9gc26.so
    p> 20121102-14:39:22 <gdb> #23 0xf617c365 in
    MM_Scheduler::masterEntryPoint(MM_EnvironmentModron*) () from
    /jtctest/sdk_installs_hc/ESPRESSO/PKG/pxi3270sr3/pxi3270sr3-2012
    1025_01/ibm-java-i386-70/jre/lib/i386/default/libj9gc26.so
    p> 20121102-14:39:22 <gdb> #24 0xf623ea94 in
    dispatcher_thread_proc2(J9PortLibrary*, void*) () from
    /jtctest/sdk_installs_hc/ESPRESSO/PKG/pxi3270sr3/pxi3270sr3-2012
    1025_01/ibm-java-i386-70/jre/lib/i386/default/libj9gc26.so
    p> 20121102-14:39:22 <gdb> #25 0xf6c6e202 in j9sig_protect ()
    from
    /jtctest/sdk_installs_hc/ESPRESSO/PKG/pxi3270sr3/pxi3270sr3-2012
    1025_01/ibm-java-
    i386-70/jre/lib/i386/default/libj9prt26.so
    p> 20121102-14:39:22 <gdb> #26 0xf623e075 in
    dispatcher_thread_proc () from
    /jtctest/sdk_installs_hc/ESPRESSO/PKG/pxi3270sr3/pxi3270sr3-
    20121025_01/ibm-java-i386-70/jre/lib/i386/default/libj9gc26.so
    p> 20121102-14:39:22 <gdb> #27 0xf77301e5 in thread_wrapper ()
    from
    /jtctest/sdk_installs_hc/ESPRESSO/PKG/pxi3270sr3/pxi3270sr3-2012
    1025_01/ibm-
    java-i386-70/jre/lib/i386/default/libj9thr26.so
    p> 20121102-14:39:22 <gdb> #28 0xf770a809 in start_thread ()
    from /lib/libpthread.so.0
    p> 20121102-14:39:22 <gdb> #29 0xf764f1be in clone () from
    /lib/libc.so.6
    .
    This problem has been discovered by attaching a new version of
    Health Center to VM and requesting loaded classes stats
    

Local fix

  • This issue might intermittently occur because of using
    GetLoadedClasses() JNI call for VM running with
    -Xgcpolicy:metronome (Soft Real Time) so it can be worked out by
    using any other GC policy. If SRT is must to be used try to
    avoid any functionality might call GetLoadedClasses() (run with
    attached JVMTI agent for example)
    

Problem summary

  • In SRT (only) if JNI GetLoadedClasses() is called at the middle
    of GC Cycle it might return classes which are technically alive
    at the moment but about to die (to be unloaded) at the end of
    this GC Cycle. Such classes might be added to the JNI Tables
    (JNI Local References for instance) and be a reason for crash in
    GC after classes unloading.
    

Problem conclusion

  • This defect will be fixed in:
    6.0.1 SR5
    7.0.0 SR4
    .
    The solution is to prevent classes listed in GetLoadedClasses()
    output to be unloaded.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV34348

  • Reported component name

    J9 COMMON CODE

  • Reported component ID

    620700127

  • Reported release

    260

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2013-01-08

  • Closed date

    2013-01-08

  • Last modified date

    2013-01-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

    J9 COMMON CODE

  • Fixed component ID

    620700127

Applicable component levels

  • R260 PSY

       UP



Document information

More support for: Runtimes for Java Technology
Virtual Machine

Software version: 260

Reference #: IV34348

Modified date: 08 January 2013