APAR status
Closed as program error.
Error description
Error Message: A SIGSEGV is received when JIT compiling a large method (likely a machine generated java method). . Stack Trace: {libj9jit29.so}{getUseDefAliasesBV__Q2_3OMR15SymbolReferenceFbT1 } <OSB>0x10020d401c0<CSB> {libj9jit29.so}{getTRAliases_impl__24TR_NodeAliasSetInterfaceXSP 1_FbT1} <OSB>0x10020d402a0<CSB> {libj9jit29.so}{contains__20TR_AliasSetInterfaceXT24TR_NodeAlias SetInterfaceXSP1__FUiPQ2_2TR11Compilation} <OSB>0x10020d40380<CSB> {libj9jit29.so}{getEntryValue__28TR_InductionVariableAnalysisFPQ 2_2TR5BlockPQ2_2TR15SymbolReferenceP12TR_BitVectorR8TR_ArrayXTPQ 2_2TR4Node_} <OSB>0x10020d40450<CSB> {libj9jit29.so}{getEntryValue__28TR_InductionVariableAnalysisFPQ 2_2TR5BlockPQ2_2TR15SymbolReferenceP12TR_BitVectorR8TR_ArrayXTPQ 2_2TR4Node_} <OSB>0x10020d405e0<CSB> {libj9jit29.so}{getEntryValue__28TR_InductionVariableAnalysisFPQ 2_2TR5BlockPQ2_2TR15SymbolReferenceP12TR_BitVectorR8TR_ArrayXTPQ 2_2TR4Node_} <OSB>0x10020d40770<CSB> --- The getEntryValue() frames will repeat hundreds or thousands of times --- The crashing method is irrelevant, the crash will occur in whatever method overflows the stack. It's the repeated getEntryValue() frames that is unique to this issue. . The problem can occur on any OpenJ9 based JVM (all platforms). Typically it occurs when a large amount of code is between the definition of a variable and it's use in a loop as an induction variable to control the loop.
Local fix
The problem can be avoid by disabling the compilation of the affected method(s): -Xjit:exclude={<affected_method_signature>} The <affected_method_signature> can be obtained from the java console crash data output when the problem occurred.
Problem summary
The JIT uses a recursive function during induction variables analysis. This can cause a SOF (stack overflow) if the method is very large and the definition of a variable related to a loop is far from the start of the loop it's self.
Problem conclusion
The JIT was modified to give up looking for a variable definition when the depth of the recursion reaches a limit. . This APAR will be fixed in the following Java Releases: 8 SR7 (8.0.7.0) . 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
IJ35496
Reported component name
JIT
Reported component ID
620700124
Reported release
130
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2021-10-08
Closed date
2021-10-08
Last modified date
2021-10-08
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
[{"Line of Business":{"code":"LOB36","label":"IBM Automation"},"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":"130"}]
Document Information
Modified date:
13 October 2021