IBM Support

IV82167: CRASH IN THE JIT COMPILER DURING THE COMPILATION OF A METHOD LAR GER THAN 64K

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 error will be thrown when the JIT
    attempts to compile a method with bytecode size larger than 64K.
    .
    Stack Trace:
    getSearchPCFromMethodAndBCIndex__FP20TR_OpaqueMethodBlockUiP11TR
    _FrontEndP14TR_Compilation
    profilingSample__12TR_IProfilerFP20TR_OpaqueMethodBlockUiP14TR_C
    ompilationUlb
    getProfilingEntry__12TR_IProfilerFP20TR_OpaqueMethodBlockUiP14TR
    _Compilation
    getProfilingData__12TR_IProfilerFP20TR_OpaqueMethodBlockUiP14TR_
    Compilation
    getBranchCounters__12TR_IProfilerFP7TR_NodeP10TR_TreeTopPiT3P14T
    R_Compilation
    getBranchCounters__27TR_BranchProfileInfoManagerFP7TR_NodeP10TR_
    TreeTopPiT3P14TR_Compilation
    getBranchCounters__6TR_CFGFP7TR_NodeP8TR_BlockPiT3P14TR_Compilat
    ion
    getInterpreterProfilerBranchCountersOnDoubleton__6TR_CFGFP10TR_C
    FGNodePiT2
    setBlockFrequenciesBasedOnInterpreterProfiler__6TR_CFGFv
    propagateFrequencyInfoFromExternalProfiler__6TR_CFGFP19TR_Extern
    alProfiler
    setBlockAndEdgeFrequencies__12TR_IProfilerFP6TR_CFGP14TR_Compila
    tion
    setFrequencies__6TR_CFGFv
    performOptimization__16TR_OptimizerImplFPQ2_16TR_OptimizerImpl12
    OptimizationiN22
    optimize__16TR_OptimizerImplFv
    optimize__17TR_IlGenOptimizerFv
    genIL__23TR_ResolvedMethodSymbolFP11TR_FrontEndP14TR_Compilation
    P23TR_SymbolReferenceTableP15TR_ILGenRequest
    compile__14TR_CompilationFv
    compile__31TR_CompilationInfoPerThreadBaseFP10J9VMThreadP14TR_Co
    mpilationP10TR_OptionsP17TR_ResolvedMethodR11TR_FrontEndP19TR_Op
    timizationPlanb
    wrappedCompile__31TR_CompilationInfoPerThreadBaseFP13J9PortLibra
    ryP17CompileParameters
    j9sig_protect
    .
    

Local fix

  • -Xjit:exclude={the failing method} will stop the JIT from
    compiling the specified method.
    

Problem summary

  • The crash happens when the JIT attempts to compile a method with
    bytecode size larger than 64K due to a overflow in bytecode
    index which can only represent values up to 64K. As stated in
    java jvm specification, the largest bytecode size allowed for a
    method is 64K, we allowed compiling methods larger than 64K
    because we used 128K as the bytecode size limit, which allowed
    the JIT to compile methods with bytecode size in between 64K and
    128K. The problem is very difficult to hit because the javac
    compilers won't compile gigantic methods whose bytecode sizes
    are going beyond 64K. This should only happen for methods with
    JSR+RET (jump sub routine) bytecodes where the subroutine will
    be inlined and the method size is expanded.
    

Problem conclusion

  • The JIT compiler has been updated to use the correct limit to
    avoid compiling methods larger than 64K.
    .
    This APAR will be fixed in the following Java Releases:
       7    SR9 FP40  (7.0.9.40)
       6    SR16 FP25 (6.0.16.25)
       8    SR3       (8.0.3.0)
    .
    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

    IV82167

  • Reported component name

    JIT

  • Reported component ID

    620700124

  • Reported release

    260

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2016-03-04

  • Closed date

    2016-03-04

  • Last modified date

    2016-03-04

  • 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

  • R260 PSY

       UP

  • R600 PSY

       UP

  • R130 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":"260","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
04 March 2016