IBM Support

IJ15826: INTERMITTENT CRASH IN JAVA JIT COMPILER

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 segmentation error in code that has been
    compiled by the Java JIT compiler is reported intermittently.
    .
    Stack Trace:
    TR_RegionStructure::removeEdgeWithoutCleanup(TR::CFGEdge*, bool)
    () from libj9jit29.so
    TR_RegionStructure::removeEdge(TR::CFGEdge*, bool) () from
    libj9jit29.so
    TR_RegionStructure::removeExternalEdgeTo(TR_Structure*, int) ()
    from libj9jit29.so
    TR_RegionStructure::removeExternalEdgeTo(TR_Structure*, int) ()
    from libj9jit29.so
    TR_RegionStructure::removeEdge(TR_Structure*, TR_Structure*) ()
    from libj9jit29.so
    OMR::CFG::removeEdge(TR::CFGEdge*) () from libj9jit29.so
    OMR::Optimization::changeConditionalToUnconditional(TR::Node*&,
    TR::Block*, int, TR::TreeTop*, char const*) () from
    libj9jit29.so
    OMR::Simplifier::conditionalToUnconditional(TR::Node*&,
    TR::Block*, int) () from libj9jit29.so
    ificmpneSimplifier(TR::Node*, TR::Block*, TR::Simplifier*) ()
    from libj9jit29.so
    0x7c36feec in OMR::Simplifier::simplify(TR::Node*, TR::Block*)
    () from libj9jit29.so
    .
    

Local fix

  • The problem can be worked around by specifying the Java virtual
    machine option -Xjit:disableLoopVersioner.  Specifying this
    option might have an effect on program performance.
    

Problem summary

  • In the process of compiling a Java method, the Java JIT compiler
    maintains data structures describing the logical structure of a
    method:  the loops it contains, if-else constructs it contains,
    and so on.  The Loop Versioner optimization is designed to
    improve the performance of loops in Java methods.  In the
    process of making improvements to those loops, the Loop
    Versioner must update the data structures that describe the
    structure of the method.
    In some circumstances where the loop that it is updating
    contains another nested loop, the Loop Versioner optimization
    might make a mistake in how it updates the data structure that
    describes the structure of the method.  This mistake leaves the
    structure in an inconsistent state.  That situation might lead
    to a crash in a subsequent optimization that is performed by the
    Java JIT compiler.
    

Problem conclusion

  • The problem was fixed by modifying the Loop Versioner
    optimization to detect the situation involving nested loops that
    was leading to the crash, and ensuring the data structure
    describing the method is updated correctly.
    .
    This APAR will be fixed in the following Java Releases:
       8    SR5 FP36  (8.0.5.36)
    .
    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

    IJ15826

  • Reported component name

    JIT

  • Reported component ID

    620700124

  • Reported release

    130

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2019-05-01

  • Closed date

    2019-05-02

  • Last modified date

    2019-05-02

  • 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

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSC9HBA","label":"Just In Time (JIT) Compiler"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"130","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
02 May 2019