IBM Support

IV25686: TRACEASSERT IN PARALLELSCAVENGER AT LINE 2616

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Error Message: j9mm.107    *   ** ASSERTION FAILED ** at
    ParallelScavenger.cpp:2616:
    ((env->_referenceObjectBuffer.isEmpty()))
    JVMDUMP039I Processing dump event "traceassert"
    .
    Stack Trace: Native Stack:
    j9dump_create() from
    /sdk/jre/lib/amd64/compressedrefs/libj9prt26.so
    doSystemDump() from
    /sdk/jre/lib/amd64/compressedrefs/libj9dmp26.so
    j9sig_protect() from
    /sdk/jre/lib/amd64/compressedrefs/libj9prt26.so
    runDumpFunction() from
    /sdk/jre/lib/amd64/compressedrefs/libj9dmp26.so
    runDumpAgent() from
    /sdk/jre/lib/amd64/compressedrefs/libj9dmp26.so
    triggerDumpAgents() from
    /sdk/jre/lib/amd64/compressedrefs/libj9dmp26.so
    twAssertion() from
    /sdk/jre/lib/amd64/compressedrefs/libj9trc26.so
    utsTraceV() from
    /sdk/jre/lib/amd64/compressedrefs/libj9ute26.so
    j9Trace() from  /sdk/jre/lib/amd64/compressedrefs/libj9trc26.so
    
    MM_ParallelScavenger::workThreadGarbageCollect(MM_EnvironmentSta
    ndard*)() from /sdk/jre/lib/amd64/compressedrefs/libj9gc26.so
    MM_ParallelDispatcher::slaveEntryPoint(MM_EnvironmentModron*)()
    from /sdk/jre/lib/amd64/compressedrefs/libj9gc26.so
    dispatcher_thread_proc2(J9PortLibrary*, void*)()  from
    /sdk/jre/lib/amd64/compressedrefs/libj9gc26.so
    j9sig_protect() from
    /sdk/jre/lib/amd64/compressedrefs/libj9prt26.so
    dispatcher_thread_proc() from
    /sdk/jre/lib/amd64/compressedrefs/libj9gc26.so
    thread_wrapper() from
    /sdk/jre/lib/amd64/compressedrefs/libj9thr26.so
    start_thread() from ./lib64/libpthread.so.0
    clone() from ./lib64/libc.so.6
    .
    The assertion failure occurs due to a scavenge abort.
    When the GC fails to either "copy" or "tenure" an object, it
    aborts the current scavenge cycle.
    After abort, we are checking for a GC reference queue structure
    is empty , but is not because the scavenge phase can resurrected
    objects during finalization processing.
    You will know if you are hitting the traceassert due to scavenge
    abort from the following two points
    (1) ASSERTION FAILED at ParallelScavenger.cpp:2616 , and the JDK
    is Java6.0.1 SR1 fp1
    (2) you see the GC history of the javacore section containing
    mostly the following trace point:
    3STHSTTYPE     22:48:07:273883000 GMT j9mm.63 -   Set scavenger
    backout flag=true
    

Local fix

  • Change of GC policy from "gencon" to "optthruput"
    

Problem summary

  • A "traceassert" is raised during Parallel Scavenge phase. This
    is caused with the scavenge phase aborts, and one of the GC
    reference queue structure is unconditionally checked for
    emptiness - when chances are it may not be.
    

Problem conclusion

  • This defect will be fixed in:
    6.0.1 SR4
    7.0.0 SR3
    .
    The JVM GC code has been updated to conditionally check for the
    GC reference queue structure.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV25686

  • 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

    2012-08-04

  • Closed date

    2012-08-04

  • Last modified date

    2012-08-04

  • 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

[{"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":"6.1","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
21 February 2022