IBM Support

IJ50938: JAVA JIT - CRASH IN TR_HANDLEINJECTEDBASICBLOCK::FINDANDREPLACEREFERENCES()

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 SEGSEGV is received when JIT compiling a
    method.
    .
    Stack Trace:
    libj9jit29.so}{TR_HandleInjectedBasicBlock::findAndReplaceRefere
    nces(TR::TreeTop*,TR::Block*,TR::Block*)}
    libj9jit29.so}{OMR::Block::split(TR::TreeTop*,TR::CFG*,bool,bool
    ,TR::ResolvedMethodSymbol*)}
    libj9jit29.so}{splitRuntimeGuardBlock(TR::Compilation*,TR::Block
    *,TR::CFG*)}
    libj9jit29.so}{TR_VirtualGuardHeadMerger::perform()}
    libj9jit29.so}{OMR::Optimizer::performOptimization(const
    OptimizationStrategy*,int,int,int)}
    libj9jit29.so}{OMR::Optimizer::performOptimization(const
    OptimizationStrategy*,int,int,int)}
    libj9jit29.so}{OMR::Optimizer::optimize()}
    libj9jit29.so}{OMR::Compilation::compile()}
    libj9jit29.so}{TR::CompilationInfoPerThreadBase::compile(J9VMThr
    ead*,TR::Compilation*,TR_ResolvedMethod*,T...}
    libj9jit29.so}{TR::CompilationInfoPerThreadBase::wrappedCompile(
    J9PortLibrary*,void*)}
    libj9prt29.so}{omrsig_protect}
    libj9jit29.so}{TR::CompilationInfoPerThreadBase::compile(J9VMThr
    ead*,TR_MethodToBeCompiled*,J9::J9SegmentP...}
    libj9jit29.so}{TR::CompilationInfoPerThread::processEntry(TR_Met
    hodToBeCompiled&,J9::J9SegmentProvider&)}
    libj9jit29.so}{TR::CompilationInfoPerThread::processEntries()}
    libj9jit29.so}{protectedCompilationThreadProc(J9PortLibrary*,TR:
    :CompilationInfoPerThread*)}
    libj9prt29.so}{omrsig_protect}
    libj9jit29.so}{compilationThreadProc(void*)}
    libj9thr29.so}{thread_wrapper}
    .
    The problem can occur with a different stack trace then what is
    shown in this APAR, but it should always show a crash in the
    compiler. We have seen this issue cause a crash in
    GlobalRegisterAllocator as well as VirtualGuardHeadMerger.
    

Local fix

  • The problem can be avoided by using the following java command
    line argument:
    -Xjit:disableVirtualGuardHeadMerger
    This option will disable the JIT optimization that has the
    problem. Disabling this optimization should show a minor impact
    on performance.
    

Problem summary

  • The JIT optimization VirtualGuardHeadMerger could corrupt the
    compiler's internal representation of the Java code being
    compiled causing the compiler to crash later on in
    VirtualGuardHeadMerger or some other optimization.
    

Problem conclusion

Temporary fix

Comments

APAR Information

  • APAR number

    IJ50938

  • Reported component name

    JIT

  • Reported component ID

    620700124

  • Reported release

    130

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2024-04-19

  • Closed date

    2024-08-21

  • Last modified date

    2024-08-21

  • 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:
22 August 2024