IZ55337: JAVA HANG WHILE THE JIT IS COMPILING A METHOD

Subscribe

You can track all active APARs for this component.

APAR status

Closed as program error.

Error description

Error Message: The Java JIT compiler hangs and consumes 100%
CPU during the compilation of a method.
.
Stack Trace:
{libj9jit24.so}{walker__22TR_ByteCodeIlGeneratorFP8TR_Block}
{libj9jit24.so}{genExceptionHandlers__22TR_ByteCodeIlGeneratorFP
8TR_Block}
{libj9jit24.so}{genILFromByteCodes__22TR_ByteCodeIlGeneratorFv}
{libj9jit24.so}{internalGenIL__22TR_ByteCodeIlGeneratorFv}
{libj9jit24.so}{genIL__22TR_ByteCodeIlGeneratorFv}
{libj9jit24.so}{genIL__23TR_ResolvedMethodSymbolFP11TR_FrontEndP
14TR_CompilationP23TR_SymbolReferenceTablebP8TR_ArrayXTP18TR_Sym
bolReference_}
.
A JVMTI agent or some kind of bytecode manipulation software
may be in use, to log or profile exceptions, or to instrument
exception handling behaviour in some fashion.

Local fix

Disable any JVMTI agent or bytecode manipulation sofwtare that
may be modifying the Java bytecodes. If the problem persists,
the issues can be avoided by using the -Xjit:exclude={...}
option to prevent the JIT compiler from compiling the offending
method.

Problem summary

The JIT failed to handle a rare kind of method
in which all the code reachable only by an exception handler
was not contiguous in the bytecode stream. Normally, javac does
not produce such methods; they are typically products of
bytecode manipulation.

Problem conclusion

This defect will be fixed in:
6.0.0 SR6
5.0.0 SR11
.
The JIT was modified to handle this case correctly.
.
To obtain the fix:
Install build 20090806 or later