IBM Support

IV30066: APPLICATION HANG DUE TO DEADLOCK BETWEEN JVM THREADS WHILE LOADI NG CLASSES FROM SIGNED JARS

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: Customer reported as their application getting
    hang at application startup
    .
    Stack Trace: Threads those resulted a deadlock condition are
    Thread (T1)
    "Agent Execution" J9VMThread:0x0000000012415C00,
    j9thread_t:0x00007FB62CAF43D0,
    java/lang/Thread:0x00000000119616B8, state:CW, prio=5
    
     at java/lang/Class.forNameImpl(Native Method)
     at java/lang/Class.forName(Class.java:168)
     at java/security/Provider$Service$1.run(Provider.java:831)
     at java/security/Provider$Service$1.run(Provider.java:823)
     at
    java/security/AccessController.doPrivileged(AccessController.jav
    a:203)
     at
    java/security/Provider$Service.newInstance(Provider.java:822)
    
     at
    sun/security/jca/GetInstance.getInstance(GetInstance.java:299)
     at
    sun/security/jca/GetInstance.getInstance(GetInstance.java:237)
    Thread (T2)
    "main" J9VMThread:0x00000000120DC100,
    j9thread_t:0x00007FB62C007BA0,
    java/lang/Thread:0x00000000021E4DA0, state:B, prio=5
    
      Blocked on:
    sun/misc/Launcher$ExtClassLoader@0x0000000002201BC0
      Owned by: "Agent Execution" (J9VMThread:0x0000000012415C00,
    
      java/lang/Thread:0x00000000119616B8)                        at
    java/lang/ClassLoader.loadClassHelper(ClassLoader.java:657(Compi
    led Code))
     at java/lang/ClassLoader.loadClass(ClassLoader.java:644)
     at
    sun/misc/Launcher$AppClassLoader.loadClass(Launcher.java:358)
     at java/lang/ClassLoader.loadClass(ClassLoader.java:627)
     at java/lang/Class.forNameImpl(Native Method)
     at java/lang/Class.forName(Class.java:168)
     at java/security/Provider$Service$1.run(Provider.java:831)
     at java/security/Provider$Service$1.run(Provider.java:823)
     at
    java/security/AccessController.doPrivileged(AccessController.jav
    a:203)
     at
    java/security/Provider$Service.newInstance(Provider.java:822)
     at
    sun/security/jca/GetInstance.getInstance(GetInstance.java:299)
     at
    sun/security/jca/GetInstance.getInstance(GetInstance.java:237)
    3LKMONOBJECT
    sun/misc/Launcher$ExtClassLoader@0x0000000001B90F90:
    Flat locked by "Agent Execution" (0x0000000041E8DA00), entry
    count 1
    3LKWAITERQ            Waiting to enter:3LKWAITER
    "main" (0x0000000041B5C100)
    2LKREGMON          VM class table lock (0x00007F14A4007120):
    <unowned>
    3LKNOTIFYQ            Waiting to be notified:
    3LKWAITNOTIFY            "Agent Execution" (0x0000000041E8DA00)
    .
    

Local fix

Problem summary

  • In JVM class loading, there is a validation whether a class is
    already in loading process or not. A thread will wait with its
    loading process if another thread is already in progress. With
    the error scenario, one thread which is holding Extention
    ClassLoader lock and trying to load a class identifies that the
    class is already in load process by another thread and then wait
    for the class loading to complete. The second thread which is
    loading the class from a signed jar requires Extention
    ClassLoader lock and resulted in the deadlock.
    

Problem conclusion

  • This defect will be fixed in:
    6.0.0 SR13
    6.0.1 SR5
    .
    IBM JVM has been modified to avoid the deadlock situation while
    loading class from signed jars.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV30066

  • Reported component name

    JAVA CLASS LIBS

  • Reported component ID

    620700130

  • Reported release

    600

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-10-12

  • Closed date

    2012-10-19

  • Last modified date

    2012-10-19

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    PM77001

Fix information

  • Fixed component name

    JAVA CLASS LIBS

  • Fixed component ID

    620700130

Applicable component levels

  • R600 PSY

       UP

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSCVQ3Y","label":"Java Class Libraries"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"6.0","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
19 October 2012