IBM Support

IV55642: DEADLOCK BETWEEN LOGMANAGER CLASS INITIALIZATION LOCK AND LOGMAN AGER.LOGGERCONTEXT

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Error Message: The failure symptom is application hangs
    intermittently when the application uses logger method in
    java.util.logging.
    .
    Stack Trace: 3XMTHREADINFO "Pooled Thread #139 running
    org.apache.harmony.rmi.NamingTest"
    J9VMThread:0x0000000001071100, j9thread_t:0x00007F1DC80065B0,
    java/lang/Thread:0x0000000068825388, state:B, prio=5
    3XMJAVALTHREAD (java/lang/Thread getId:0xA6, isDaemon:false)
    3XMTHREADINFO1 (native thread ID:0x551B, native priority:0x5,
    native policy:UNKNOWN)
    3XMTHREADINFO2 (native stack address range
    from:0x00007F1DD1A6B000, to:0x00007F1DD1AAC000, size:0x41000)
    3XMCPUTIME CPU usage total: 0.054910736 secs
    3XMTHREADBLOCK Blocked on:
       java/util/logging/LogManager$LoggerContext@0x0000000068825430
       Owned by: "Pooled Thread #354 running
    
    testcases.classloader.ClassMapHog"(J9VMThread:0x00000000014B7F00
    , java/lang/Thread:0x000000006882C4C8)
    3XMHEAPALLOC Heap bytes allocated since last GC cycle=0 (0x0)
    3XMTHREADINFO3 Java callstack:
    4XESTACKTRACE at
    
    java/util/logging/LogManager$1.run(LogManager.java:203(Compiled
    Code))
    4XESTACKTRACE at
    
    java/security/AccessController.doPrivileged(AccessController.jav
    a:274(Compiled Code))
    4XESTACKTRACE at
        java/util/logging/LogManager.<clinit>(LogManager.java:173)
    4XESTACKTRACE at
    
    java/util/logging/Logger.demandLogger(Logger.java:336(Compiled
    Code))
    4XESTACKTRACE at
        java/util/logging/Logger.getLogger(Logger.java:390(Compiled
    Code))
    4XESTACKTRACE at
    
    sun/rmi/runtime/Log$LoggerLogFactory.createLog(Log.java:171(Comp
    iled Code))
    4XESTACKTRACE at
        sun/rmi/runtime/Log.getLog(Log.java:138(Compiled Code))
    4XESTACKTRACE at
        sun/rmi/transport/Transport.<clinit>(Transport.java:61)
    which is blocked by
    3XMTHREADINFO "Pooled Thread #354 running
    testcases.classloader.ClassMapHog"
        J9VMThread:0x00000000014B7F00,
    j9thread_t:0x00007F1DC84442C0,
        java/lang/Thread:0x000000006882C4C8, state:CW, prio=5
        3XMJAVALTHREAD (java/lang/Thread getId:0x17D,isDaemon:false)
    3XMTHREADINFO1 (native thread ID:0x55F3, native priority:0x5,
    native policy:UNKNOWN)
    3XMTHREADINFO2 (native stack address range
        from:0x00007F1DBA3D1000, to:0x00007F1DBA412000,
    size:0x41000)
    3XMCPUTIME CPU usage total: 0.273035781 secs
    3XMTHREADBLOCK Waiting on:
    
    java/lang/J9VMInternals$ClassInitializationLock@0x00000000658450
    E0 Owned by: <unowned>
    3XMHEAPALLOC Heap bytes allocated since last GC cycle=0 (0x0)
    3XMTHREADINFO3 Java callstack:
    4XESTACKTRACE at
    
    java/util/logging/LogManager$LoggerContext.addLocalLogger(LogMan
    ager.java:652(Compiled Code))
    5XESTACKTRACE (entered lock:
    
    java/util/logging/LogManager$LoggerContext@0x0000000068825430,en
    try count: 1)
    4XESTACKTRACE at
    
    java/util/logging/LogManager$LoggerContext.addLocalLogger(LogMan
    ager.java:585(Compiled Code))
    4XESTACKTRACE at
    
    java/util/logging/LogManager.addLogger(LogManager.java:950(Compi
    led Code))
    4XESTACKTRACE at
    
    java/util/logging/LogManager.demandSystemLogger(LogManager.java:
    448(Compiled Code))
    4XESTACKTRACE at
    
    java/util/logging/Logger.getPlatformLogger(Logger.java:470(Compi
    led Code))
    4XESTACKTRACE at
    
    java/util/logging/LoggingProxyImpl.getLogger(LoggingProxyImpl.ja
    va:41(Compiled Code))
    4XESTACKTRACE at
    
    sun/util/logging/LoggingSupport.getLogger(LoggingSupport.java:10
    0(Compiled Code)) which again is waiting on
    J9VMInternals$ClassInitializationLock@0x00000000658450E0, and
    deadlock.
    .
    N/A
    
    LOCAL FIX:
    N/A
    

Local fix

  • N/A
    

Problem summary

  • The hang is caused by deadlock between LogManager class
    initialization lock and LogManager.LoggerContext.
    

Problem conclusion

  • This APAR will be fixed in the following Java Releases:
       7 R1 SR1       (7.1.1.0)
       7    SR7       (7.0.7.0)
    .
    LogManager class initialization code has been modified to lazy
    initialized to avoid the deadlock.
    

Temporary fix

  • N/A
    

Comments

APAR Information

  • APAR number

    IV55642

  • Reported component name

    JAVA CLASS LIBS

  • Reported component ID

    620700130

  • Reported release

    700

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2014-02-18

  • Closed date

    2014-02-24

  • Last modified date

    2014-02-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

    JAVA CLASS LIBS

  • Fixed component ID

    620700130

Applicable component levels

  • R700 PSY

       UP

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSNVBF","label":"Runtimes for Java Technology"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.0","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
21 February 2022