IZ80868: JAVA JIT: HANG WHEN ATTEMPTING TO START A GC CYCLE
Closed as program error.
Error Message: The Java application hangs when a GC cycle starts. CPU utilization will be low but one thread will be executing endlessly in JIT compiled code. All other threads will have stopped, waiting for the GC cycle to complete. . Stack Trace: N/A . For this problem to occur, there must be a long running or endless loop in the Java code, e.g. a thread is waiting for work but there is no work to be processed so it endlessly loops checking the work queue without giving up the CPU by sleeping. In the case where this problem is occurring in a long running loop, the symptom could be seen as a long GC pause time rather then a out right hang.
The problem can be avoid by using the following Java command line argument: . -Xjit:disableRedundantAsyncCheckRemoval . Using this option will have a slight impact on the performance of the Java application but in most cases the cost will only be a few percent.
The JIT would fail to generate code to check for a pending GC cycle within an irregular loop structure. An irregular loop could be written into the Java code or could be the result of a JIT transformation. If the irregular loop was long running or never ending then the GC cycle would be held up for quite some time.
This defect will be fixed in: 5.0.0 SR12 6.0.0 SR9 . The JIT was modified to eliminate this problem. . To obtain the fix: Install build 20100622 or later
Reported component name
JAVA 5 JIT
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
JAVA 5 JIT
Fixed component ID
Applicable component levels