IBM Support

IV91507: JAVA JIT - DEADLOCK WITH A JAVA OBJECT MONITOR

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: Hang with the javacore file showing a deadlock.
    Many cases show a deadlock between a StringBuffer and a
    SystemOutputStream object, but other object types are possible.
    .
    Stack Trace: N/A
    .
    The problem is most likely to occur in Java 7.1 and Java 8.0.
    It's is very unlikely to occur on Java 7.0 / 6.1 and it is only
    possible when using the -Xaggressive option on 7.0 / 6.1. The
    problem is not possible in Java 6.0.
    Typically, one of the objects involved in the deadlock will have
    a very high "entry count" as seen in the javacore.
    

Local fix

  • The problem can be avoided by using the java command line option
    "-Xjit:disableMonitorCoarsening". If this option does not avoid
    the problem then this APAR is NOT the cause of the deadlock. The
    use of this option will have a very minor effect on the
    performance.
    

Problem summary

  • The JIT may try to replace two adjacent monitor entry/exit
    sequences with one sequence that encapsulates the code locked by
    both sequences. In rare cases it would do this when one of the
    entry/exist sequences is inside a loop where the other sequence
    is not. This would result in the monitor entry being executed
    more then once inside the loop but only execute the monitor
    exist once, leaving the object locked incorrectly.
    

Problem conclusion

  • The JIT was modified so that monitors will not be combined with
    they exist at different loop nesting levels.
    .
    This APAR will be fixed in the following Java Releases:
       7 R1 SR4       (7.1.4.0)
       6 R1 SR8 FP40  (6.1.8.40)
       7    SR10      (7.0.10.0)
       8    SR4       (8.0.4.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

    IV91507

  • Reported component name

    JIT

  • Reported component ID

    620700124

  • Reported release

    130

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2016-12-13

  • Closed date

    2016-12-14

  • Last modified date

    2016-12-14

  • 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

[{"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:
14 December 2016