APAR status
Closed as program error.
Error description
Error Message: ** ASSERTION FAILED ** at ParallelScavenger.cpp:3230 . Stack Trace: MM_ParallelScavengerRootScanner::doStackSlot(J9Object**,void*,co nst void*)() stackSlotIterator(J9JavaVM*,J9Object**,void*,J9StackWalkState*,c onst void*)() VMThreadStackSlotIterator.vmThreadStackDoOSlotIterator(J9VMThrea d*,J9StackWalkState*,J9Object**,const void*)() jswalk.walkJITFrameSlots() jswalk.jitWalkFrame() jitWalkStackFrames() walkStackFrames() GC_VMThreadStackSlotIterator::scanSlots(J9VMThread*,J9VMThread*, void*,void(*)(J9JavaVM*,J9Object**,void*,J9StackWalkState*,const void*),bool,bool)() MM_RootScanner::scanOneThread(MM_EnvironmentBase*,J9VMThread*,vo id*)() ... . The problem can occur when there is an imbalance between monitor enter/exit bytescodes that makes it impossible for the JIT compiler to determine where locks are held during the execution of the resulting compiled code. The problem effects all J9 releases up to Java 8 but we do not believe it is possible for code compiled by javac to surface this issue unless it has been modified by some java agent.
Local fix
The issue can only be avoided by preventing the JIT from compiling the method with a monitor enter/exit imbalance. For example: -Xjit:exclude={package/class.method*}
Problem summary
The JIT would try to calculate what areas of the code are holding locks, but given an monitor enter/exit imbalance the JIT would falsely calculate the life of monitors resulting in the JIT providing incorrect information to the GC.
Problem conclusion
The JIT was modified so that it could better detect cases where monitor enter/exit imbalances exist so that a conservative solution can be used. . This APAR will be fixed in the following Java Releases: 8 SR5 (8.0.5.0) 7 R1 SR4 FP25 (7.1.4.25) 7 SR10 FP25 (7.0.10.25) 6 R1 SR8 FP65 (6.1.8.65) Contact your IBM Product's Service Team for these Service Refreshes and Fix Packs. For those running stand-alone, information about the available Service Refreshes and Fix Packs can be found at: https://www.ibm.com/developerworks/java/jdk/
Temporary fix
Comments
APAR Information
APAR number
IV98212
Reported component name
JIT
Reported component ID
620700124
Reported release
130
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2017-07-18
Closed date
2017-07-18
Last modified date
2018-04-20
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
JIT
Fixed component ID
620700124
Applicable component levels
[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSC9HBA","label":"Just In Time (JIT) Compiler"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"130","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
20 April 2018