Identifying JIT compilation failures

For JIT compiler failures, analyze the error output to determine if a failure occurs when the JIT compiler attempts to compile a method.

If the JVM crashes, and you can see that the failure has occurred in the JIT library (libj9jit<vm_version>.so), the JIT compiler might have failed during an attempt to compile a method. On Windows systems, the JIT library is j9jit<vm_version>.dll.
Note: <vm_version> is the version number of the VM, as reported by the java -version command but without any punctuation, for example in the following output line, the version is 29:
IBM J9 VM build 2.9, JRE 1.8.0 Linux x86-32 20161114_326069 (JIT enabled, AOT enabled)
If you see error output like this example, you can use it to identify the failing method:
Unhandled exception
Type=Segmentation error vmState=0x00050000
Target=2_30_20051215_04381_BHdSMr (Linux 2.4.21-32.0.1.EL)
CPU=ppc64 (4 logical CPUs) (0xebf4e000 RAM)
J9Generic_Signal_Number=00000004 Signal_Number=0000000b Error_Value=00000000 Signal_Code=00000001
Handler1=0000007FE05645B8 Handler2=0000007FE0615C20
R0=E8D4001870C00001 R1=0000007FF49181E0 R2=0000007FE2FBCEE0 R3=0000007FF4E60D70
R4=E8D4001870C00000 R5=0000007FE2E02D30 R6=0000007FF4C0F188 R7=0000007FE2F8C290
...... Module=/home/test/sdk/jre/bin/libj9jit<vm_version>.so
Module_base_address=0000007FE29A6000
...... 
Method_being_compiled=com/sun/tools/javac/comp/Attr.visitMethodDef(Lcom/sun/tools/javac/tree/
JCTree$JCMethodDecl;)
The important lines are:
vmState=0x00050000
Indicates that the JIT compiler is compiling code. For a list of vmState code numbers, see the VM flags table in the Java dump GPINFO section.
Module=/home/test/sdk/jre/bin/libj9jit<vm_version>.so
Indicates that the error occurred in libj9jit<vm_version>.so, the JIT compiler module.
Method_being_compiled=
Indicates the Java™ method being compiled.
If your output does not indicate the failing method, use the verbose option with the following additional settings:
-Xjit:verbose={compileStart|compileEnd}

These verbose settings report when the JIT starts to compile a method, and when it ends. If the JIT fails on a particular method (that is, it starts compiling, but crashes before it can end), use the exclude parameter to exclude it from compilation (refer to Locating the failing method). If excluding the method prevents the crash, you have a workaround that you can use while the service team corrects your problem.