IBM Support

IJ24023: JAVA JIT: RARE CRASH READING AN ADDRESS JUST BEYOND THE END OF THE JAVA HEAP

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 executing JIT compiled
    code.
    .
    Stack Trace: {java/util/regex/Pattern$Curly.match} JIT
    {com/myproclassic/server/services/card/PCECardHandlingBean.match
    PatternList} JIT
    {com/myproclassic/server/services/card/PCECardHandlingBean.match
    PatternListWithReplace} JIT
    {com/myproclassic/server/services/card/PCECardHandlingBean.match
    } JIT
    {com/myproclassic/server/services/card/PCECardHandlingBean.getEl
    ementResult} JIT
    This stack trace is one example of the problem. Since the
    problem could potentially occur in other JIT compiled methods,
    any crash in JIT compiled code is a potential example of this
    problem.
    .
    The problem can occur on any platform or OS when using the J9
    JVM, but the problem will be very intermittent because the crash
    will only occur when a specific object is allocated right and
    the end of the Java heap. Therefore the chances of hitting the
    problem is very slim.
    If the address of the illegal access is not just beyond the end
    of the Java heap then this APAR does NOT apply.
    

Local fix

  • The problem can be avoid by disable a JIT optimization using the
    following java command line option:
    -Xjit:disableBlockVersioner
    Using this option will have a minor effect on performance, but
    the cost is very likely to be less then 2% in almost all most
    cases.
    

Problem summary

  • When attempting to generate an optimized path by removing
    array-bounds-checks the JIT would introduce new upper and lower
    bound checks to insure the optimized path can safely remove the
    array-bounds-checks. In doing so it introduced code that could
    potentially attempt to read passed the end of an object.
    

Problem conclusion

  • The JIT was modified so that it will verify the object that it
    is reading from is an instance of the class type we are
    expecting.
    .
    This APAR will be fixed in the following Java Releases:
       8    SR6 FP10  (8.0.6.10)
    .
    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

    IJ24023

  • Reported component name

    JIT

  • Reported component ID

    620700124

  • Reported release

    130

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2020-03-31

  • Closed date

    2020-04-03

  • Last modified date

    2020-04-03

  • 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:
03 April 2020