IBM Support

IJ35496: JAVA JIT COMPILE TIME SOF IN TR_INDUCTIONVARIABLEANALYSIS::GETENTRYVALUE()

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

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