IBM Support

IJ32096: UNEXPECTED EXCEPTIONS/BEHAVIOUR WHEN SHARED CLASSES AND AOT COMPILATION IS ENABLED

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: N/A
    .
    Stack Trace: N/A
    .
    This issue can occur on any Java platform that uses OpenJ9
    runtime. The problem can only occur in an application where
    multiple classes with same class hierarchy are loaded by
    different class-loaders while using shared classes and AOT.
    

Local fix

  • Using the AOT option, -Xaot:maxCheckcastProfiledClassTests=0
    will disable the heuristic that causes this behaviour in AOT
    compiled code while causing a minor performance penalty for AOT
    compiled methods. If an AOT compiled method becomes hot, it will
    get recompiled as a normal JIT compile where this problem is not
    possible and the work-around option has no effect.
    

Problem summary

  • In AOT/JIT compiled code, we generate series of inlined tests
    for checkcast/InstanceOf Bytecodes. One of the tests in the
    sequence uses the profiled data for that particular sites and
    based on the relationship between the classes in profiled data
    for that site and the cast class, it generates tests to get the
    result of the checkcast/instanceOf quickly. In case of AOT
    compiled code, we were missing validation information that
    verifies the relationship between profiled class and the cast
    class when AOT code is loaded from shared class cache, without
    which the generated test could result in an unexpected code path
    to be executed.
    

Problem conclusion

  • Compiler code has been updated to disable the use of profiled
    class data for checkcast/instanceOf code, when Shared Class
    Cache is enabled and it is generating AOT code.
    .
    This APAR will be fixed in the following Java Releases:
       8    SR6 FP31  (8.0.6.31)
    .
    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

    IJ32096

  • 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-04-13

  • Closed date

    2021-04-13

  • Last modified date

    2021-04-13

  • 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:
14 April 2021