IBM Support

IJ55766: JAVA JIT: CRASH IN ASPARSEBITVECTOR DESTRUCTOR

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 fault during Java JIT compile time
    while executing in the destructor method for the
    ASparseBitVector class.
    .
    Stack Trace: CS2::ASparseBitVector<...>::__dftdt()() at
    0x90000000807cc6c
    invokedtr.__Invoke__Destructor() at 0x9000000008150e0
    __DoThrowV6() at 0x900000000817c3c
    J9::SystemSegmentProvider::request(...)() at 0x900000008ffa590
    TR::Region::allocate(...)() at 0x900000008032e24
    TR_Memory::allocateMemory(...)() at 0x900000008045108
    TR_AliasSetInterface<0>::getAliasesAndUnionWith(...)() at
    0x9000000081d2e2c
    RematTools::walkNodesCalculatingRematSafety(...)() at
    0x9000000081cd424
    ...
    .
    The problem occurs after the JIT reaches its memory limit during
    a Java method compile. Therefore the problem is most likely to
    occur during the compilation of very large methods. All current
    examples of this problem have occurred while compiling methods
    with 10,000+ bytes of bytecodes and reach that size because they
    are machine generated methods.
    The problem can occur on any J9 platform.
    

Local fix

  • The issue can not be eliminated using a java command line
    option, but the chances of hitting the problem can be reduced by
    increasing the JIT scratch space limit above the default of
    256MB. In this example we increase the limit by 50% to 384MB,
    but it can be set even higher if need be. The value is specified
    in KB.
    -Xjit:scratchSpaceLimit=393216
    It is also possible to avoid specific instances of the issue by
    preventing the compilation of affected methods, but this will
    not prevent the same issue from affecting the compilation of
    other methods in the Java application.
    -Xjit:exclude={<method_full_signature>}
    Where <method_full_signature> is the method name as seen in the
    javacore labeled "Compiling method".
    

Problem summary

  • At a point where the JIT is manipulating the structure of an
    ASparseBitVector C++ object, the compile time scratch memory
    space limit is reached causing a C++ exception to be thrown. The
    
    C++ runtime then calls the destructor for the ASparseBitVector
    C++ object, but the object structure is in an inconsistent state
    
    resulting in a crash while the destructor is attempting to free
    the memory associated with the object.
    

Problem conclusion

Temporary fix

Comments

APAR Information

  • APAR number

    IJ55766

  • Reported component name

    JIT

  • Reported component ID

    620700124

  • Reported release

    130

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2025-09-10

  • Closed date

    2025-09-10

  • Last modified date

    2025-11-19

  • 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":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SSNVBF","label":"Runtimes for Java Technology"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"130","Line of Business":{"code":"LOB08","label":"Cognitive Systems"}}]

Document Information

Modified date:
19 November 2025