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