IBM Support

IV58762: JAVA PROCESS HANGS DURING GARBAGE COLLECTION WHEN A JIT-COMPILED METHOD HAS A VERY LARGE STACK FRAME

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: The JVM garbage collector hangs while walking
    the stack frame of a possibly very large JIT-compiled method.
    .
    Stack Trace:
    walkJITFrameSlots()
    jitWalkFrame()
    jitWalkStackFrames()
    walkStackFrames()
    GC_VMThreadStackSlotIterator::scanSlots()
    MM_RootScanner::scanOneThread()
    MM_RootScanner::scanThreads()
    MM_RootScanner::scanRoots()
    MM_ParallelScavenger::scavengeRoots()
    MM_ParallelScavenger::workThreadGarbageCollect()
    MM_ParallelScavengeTask::run()
    .
    

Local fix

  • The problem can be avoided if the JIT-compiled method owning
    the stack frame can be identified. The method can be excluded
    from compilation with -Xjit:exclude={*method_name*}, to prevent
    the GC from hanging.
    

Problem summary

  • The problem occurs when the JIT generates code for a method that
    requires a stack frame size that is larger than 32KB. This
    results in a field overflow when calculating a stack offset in
    the meta-data used by the stack walker. The overflow results in
    a near infinite loop in the walkJITFrameSlots() function.
    

Problem conclusion

  • The JIT has been modified so that it will abort any compilation
    that would result in a stack frame size that is larger than
    32KB.
    .
    This APAR will be fixed in the following Java Releases:
       6    SR16 FP2  (6.0.16.2)
       6 R1 SR8 FP2   (6.1.8.2)
       7    SR8       (7.0.8.0)
       7 R1 SR2       (7.1.2.0)
    .
    Contact your IBM Product's Service Team for these Service
    Refreshes and Fix Packs.
    For those running stand-alone, Java maintenance is available
    from:
               https://www.ibm.com/developerworks/java/jdk/
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV58762

  • Reported component name

    JIT

  • Reported component ID

    620700124

  • Reported release

    600

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2014-04-04

  • Closed date

    2014-07-18

  • Last modified date

    2014-10-28

  • 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

  • R600 PSY

       UP

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

Document Information

Modified date:
28 October 2014