IBM Support

IJ11620: CRASH DURING COMPILATION WITH DIFFERENT STACK TRACES POSSIBLE

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/GPF is raised by the JIT compiler
    during compilation
    .
    One possible Stack Trace:
    TR_J9VMBase::getResolvedVirtualMethod
    TR_ResolvedJ9Method::getResolvedVirtualMethod
    TR_InvariantArgumentPreexistence::processIndirectCall
    TR_InvariantArgumentPreexistence::processNode
    TR_InvariantArgumentPreexistence::processNode
    TR_InvariantArgumentPreexistence::perform
    OMR::Optimizer::performOptimization
    OMR::Optimizer::optimize
    OMR::ResolvedMethodSymbol::genIL
    TR_J9InlinerPolicy::_tryToGenerateILForMethod
    TR_InlinerBase::tryToGenerateILForMethod
    TR_InlinerBase::inlineCallTarget2
    TR_InlinerBase::inlineCallTarget
    TR_InlinerBase::inlineFromGraph
    ...
    TR_MultipleCallTargetInliner::inlineCallTargets
    TR_InlinerBase::performInlining
    TR_Inliner::perform
    OMR::Optimizer::performOptimization
    OMR::Optimizer::optimize
    .
    Another possible Stack Trace:
    OMR::Z::Instruction::checkRegForGPR0Disable
    TR::S390RegInstruction::S390RegInstruction
    generateRXInstruction
    astoreHelper
    OMR::Z::TreeEvaluator::astoreEvaluator
    OMR::CodeGenerator::evaluate
    J9::CodeGenerator::doInstructionSelection
    .
    Also, this is a possible Stack Trace:
    OMR::Z::TreeEvaluator::iRegStoreEvaluator
    OMR::CodeGenerator::evaluate
    J9::CodeGenerator::doInstructionSelection
    OMR::CodeGenPhase::performInstructionSelectionPhase
    

Local fix

  • This problem can be avoided using the following command line
    option.
    Xjit:disableInvariantArgumentPreexistence
    The impact on performance should be minimal.
    

Problem summary

  • The inliner may choose to inline a call in a dead code path.
    This normally gets cleaned up by later optimizations, however if
    the callee method's class type does not match the propagated
    argument type, then the InvariantArgumentPreexistence
    optimization can crash when trying to devirtualize a call within
    the callee. Or, it can succeed in dervirtualizing the call, but
    the target is wrong which leaves the IL invalid and subsequent
    optimizations or the code generator can crash when encountering
    this call.
    

Problem conclusion

Temporary fix

Comments

APAR Information

  • APAR number

    IJ11620

  • Reported component name

    JIT

  • Reported component ID

    620700124

  • Reported release

    130

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2018-11-28

  • Closed date

    2018-11-28

  • Last modified date

    2019-09-10

  • 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:
10 September 2019