IV25686: TRACEASSERT IN PARALLELSCAVENGER AT LINE 2616
Closed as program error.
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
Change of GC policy from "gencon" to "optthruput"
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.
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.
Reported component name
J9 COMMON CODE
Reported component ID
Last modified date
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fixed component name
J9 COMMON CODE
Fixed component ID
Applicable component levels