IBM Support

IV98235: FLOATING POINT ERROR IN JIT COMPILER

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 floating point error is raised by the JIT
    compiler during method compilation causing the Java Runtime
    Environment to unexpectedly terminate.
    .
    Stack Trace:
    TR_ResolvedJ9MethodBase::isCold(TR_Compilation*,bool,TR_Resolved
    MethodSymbol*)
    TR_J9EstimateCodeSize::realEstimateCodeSize(TR_CallTarget*,TR_Ca
    llStack*,bool)
    TR_J9EstimateCodeSize::estimateCodeSize(TR_CallTarget*,TR_CallSt
    ack*,bool)
    TR_EstimateCodeSize::calculateCodeSize(TR_CallTarget*,TR_CallSta
    ck*,bool)
    TR_InlinerBase::applyPolicyToTargets(TR_CallStack*,TR_CallSite*)
    TR_InlinerBase::getSymbolAndFindInlineTargets(TR_CallStack*,TR_C
    allSite*,bool)
    TR_MultipleCallTargetInliner::walkCallSites(TR_ResolvedMethodSym
    bol*,TR_CallStack*,TR_Inner...
    TR_MultipleCallTargetInliner::doWalkCallSites(TR_ResolvedMethodS
    ymbol*,TR_InnerPreexistence...
    TR_InlinerBase::performInlining(TR_ResolvedMethodSymbol*)
    TR_Inliner::perform()
    TR_OptimizerImpl::performOptimization(const
    Optimization*,int,int,int)
    TR_OptimizerImpl::optimize()
    TR_Compilation::performOptimizations()
    TR_Compilation::compile()
    .
    

Local fix

  • This problem can be avoided by disabling inlining. However,
    doing that globally is likely to affect performance, so it
    should only be disabled on the method which the JIT compiler is
    crashing trying to compile to minimize performance impact using
    the following Java command line option template:
    -Xjit:{package/Class.method(signature)}(disableInlining)
    

Problem summary

  • The JIT compiler makes calculations which include division as
    part of its heuristics. In rare cases a value can be zero and a
    calculation which uses this value as the divisor did not guard
    against the possibility of the value being zero leading to the
    possibility of a division by zero error which causes the JRE to
    crash reporting a Floating Point Error.
    

Problem conclusion

  • The JIT compiler has been updated to guard against the value
    being zero to prevent a division by zero error.
    .
    This APAR will be fixed in the following Java Releases:
       8    SR4 FP10  (8.0.4.10)
       7 R1 SR4 FP10  (7.1.4.10)
       6 R1 SR8 FP50  (6.1.8.50)
       6    SR16 FP50 (6.0.16.50)
       7    SR10 FP10 (7.0.10.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

    IV98235

  • Reported component name

    JIT

  • Reported component ID

    620700124

  • Reported release

    130

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2017-07-18

  • Closed date

    2017-07-24

  • Last modified date

    2017-07-24

  • 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

  • R130 PSY

       UP

  • R260 PSY

       UP

  • R600 PSY

       UP

[{"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:
24 July 2017