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