-
Bug
-
Resolution: Fixed
-
P2
-
7
-
b116
-
generic
-
generic
-
Verified
JCK6b java_beans and java_security tests run in parallel in different threads do hang
because of following deadlock:
================================
Found one Java-level deadlock:
=============================
"Thread-50":
waiting to lock monitor 0x081093a8 (object 0xc6d713c0, a java.lang.Class),
which is held by "Thread-39"
"Thread-39":
waiting to lock monitor 0x0833a8ac (object 0xc2d45810, a sun.security.jca.ProviderConfig),
which is held by "Thread-50"
Java stack information for the threads listed above:
===================================================
"Thread-50":
at sun.security.jca.Providers.endThreadProviderList(Providers.java:229)
- waiting to lock <0xc6d713c0> (a java.lang.Class for sun.security.jca.Providers)
at sun.security.jca.Providers.stopJarVerification(Providers.java:127)
at sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:195)
at java.util.jar.JarVerifier.processEntry(JarVerifier.java:294)
at java.util.jar.JarVerifier.update(JarVerifier.java:205)
at java.util.jar.JarFile.initializeVerifier(JarFile.java:338)
at java.util.jar.JarFile.getInputStream(JarFile.java:403)
- locked <0xc2d44ea8> (a java.util.jar.JarFile)
at sun.misc.URLClassPath$JarLoader$2.getInputStream(URLClassPath.java:735)
at sun.misc.Resource.cachedInputStream(Resource.java:76)
- locked <0xc2d45790> (a sun.misc.URLClassPath$JarLoader$2)
at sun.misc.Resource.getByteBuffer(Resource.java:171)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:348)
at java.net.URLClassLoader.access$100(URLClassLoader.java:75)
at java.net.URLClassLoader$1.run(URLClassLoader.java:294)
at java.net.URLClassLoader$1.run(URLClassLoader.java:288)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:287)
at java.lang.ClassLoader.loadClass(ClassLoader.java:391)
- locked <0xc2d457e0> (a java.lang.Object)
at java.lang.ClassLoader.loadClass(ClassLoader.java:384)
- locked <0xc2d45808> (a java.lang.Object)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:331)
at sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:215)
at sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:206)
at java.security.AccessController.doPrivileged(Native Method)
at sun.security.jca.ProviderConfig.doLoadProvider(ProviderConfig.java:206)
at sun.security.jca.ProviderConfig.getProvider(ProviderConfig.java:187)
- locked <0xc2d45810> (a sun.security.jca.ProviderConfig)
at sun.security.jca.ProviderList.getProvider(ProviderList.java:232)
at sun.security.jca.ProviderList.getService(ProviderList.java:330)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:157)
at java.security.Security.getImpl(Security.java:696)
at java.security.MessageDigest.getInstance(MessageDigest.java:146)
at java.io.ObjectStreamClass.computeDefaultSUID(ObjectStreamClass.java:1769)
at java.io.ObjectStreamClass.access$100(ObjectStreamClass.java:69)
at java.io.ObjectStreamClass$1.run(ObjectStreamClass.java:222)
at java.io.ObjectStreamClass$1.run(ObjectStreamClass.java:220)
at java.security.AccessController.doPrivileged(Native Method)
at java.io.ObjectStreamClass.getSerialVersionUID(ObjectStreamClass.java:219)
at java.io.ObjectStreamClass.writeNonProxy(ObjectStreamClass.java:684)
at java.io.ObjectOutputStream.writeClassDescriptor(ObjectOutputStream.java:657)
at java.io.ObjectOutputStream.writeNonProxyDesc(ObjectOutputStream.java:1262)
at java.io.ObjectOutputStream.writeClassDesc(ObjectOutputStream.java:1220)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1404)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1167)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1526)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1491)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1409)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1167)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:343)
at javasoft.sqe.serial.util.Convert.writeObjectToByteArray(Convert.java:69)
at javasoft.sqe.serial.util.Convert.objectToStreamObject(Convert.java:36)
at javasoft.sqe.tests.api.java.beans.beancontext.BeanContextServicesSupport.BCSSServiceProvider.se
rial.ConstructorTests.serial2001(ConstructorTests.java:61)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:623)
at javasoft.sqe.javatest.lib.MultiTest.invokeTestCase(MultiTest.java:406)
at javasoft.sqe.javatest.lib.MultiTest.run(MultiTest.java:195)
at nsk.stress.share.StressTest$TestThread.runTest(StressTest.java:739)
at nsk.stress.share.StressTest$TestThread.run(StressTest.java:755)
"Thread-39":
at sun.security.jca.ProviderConfig.getProvider(ProviderConfig.java:168)
- waiting to lock <0xc2d45810> (a sun.security.jca.ProviderConfig)
at sun.security.jca.ProviderList.loadAll(ProviderList.java:281)
at sun.security.jca.ProviderList.removeInvalid(ProviderList.java:298)
at sun.security.jca.Providers.getFullProviderList(Providers.java:170)
- locked <0xc6d713c0> (a java.lang.Class for sun.security.jca.Providers)
at java.security.Security.getProviders(Security.java:457)
at javasoft.sqe.jck.lib.ProviderTest.initialize(ProviderTest.java:326)
at javasoft.sqe.jck.lib.ProviderTest.init(ProviderTest.java:272)
at javasoft.sqe.javatest.lib.MultiTest.init(MultiTest.java:545)
at javasoft.sqe.javatest.lib.MultiTest.run(MultiTest.java:168)
at nsk.stress.share.StressTest$TestThread.runTest(StressTest.java:739)
at nsk.stress.share.StressTest$TestThread.run(StressTest.java:755)
Found 1 deadlock.
===================
because of following deadlock:
================================
Found one Java-level deadlock:
=============================
"Thread-50":
waiting to lock monitor 0x081093a8 (object 0xc6d713c0, a java.lang.Class),
which is held by "Thread-39"
"Thread-39":
waiting to lock monitor 0x0833a8ac (object 0xc2d45810, a sun.security.jca.ProviderConfig),
which is held by "Thread-50"
Java stack information for the threads listed above:
===================================================
"Thread-50":
at sun.security.jca.Providers.endThreadProviderList(Providers.java:229)
- waiting to lock <0xc6d713c0> (a java.lang.Class for sun.security.jca.Providers)
at sun.security.jca.Providers.stopJarVerification(Providers.java:127)
at sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:195)
at java.util.jar.JarVerifier.processEntry(JarVerifier.java:294)
at java.util.jar.JarVerifier.update(JarVerifier.java:205)
at java.util.jar.JarFile.initializeVerifier(JarFile.java:338)
at java.util.jar.JarFile.getInputStream(JarFile.java:403)
- locked <0xc2d44ea8> (a java.util.jar.JarFile)
at sun.misc.URLClassPath$JarLoader$2.getInputStream(URLClassPath.java:735)
at sun.misc.Resource.cachedInputStream(Resource.java:76)
- locked <0xc2d45790> (a sun.misc.URLClassPath$JarLoader$2)
at sun.misc.Resource.getByteBuffer(Resource.java:171)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:348)
at java.net.URLClassLoader.access$100(URLClassLoader.java:75)
at java.net.URLClassLoader$1.run(URLClassLoader.java:294)
at java.net.URLClassLoader$1.run(URLClassLoader.java:288)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:287)
at java.lang.ClassLoader.loadClass(ClassLoader.java:391)
- locked <0xc2d457e0> (a java.lang.Object)
at java.lang.ClassLoader.loadClass(ClassLoader.java:384)
- locked <0xc2d45808> (a java.lang.Object)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:331)
at sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:215)
at sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:206)
at java.security.AccessController.doPrivileged(Native Method)
at sun.security.jca.ProviderConfig.doLoadProvider(ProviderConfig.java:206)
at sun.security.jca.ProviderConfig.getProvider(ProviderConfig.java:187)
- locked <0xc2d45810> (a sun.security.jca.ProviderConfig)
at sun.security.jca.ProviderList.getProvider(ProviderList.java:232)
at sun.security.jca.ProviderList.getService(ProviderList.java:330)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:157)
at java.security.Security.getImpl(Security.java:696)
at java.security.MessageDigest.getInstance(MessageDigest.java:146)
at java.io.ObjectStreamClass.computeDefaultSUID(ObjectStreamClass.java:1769)
at java.io.ObjectStreamClass.access$100(ObjectStreamClass.java:69)
at java.io.ObjectStreamClass$1.run(ObjectStreamClass.java:222)
at java.io.ObjectStreamClass$1.run(ObjectStreamClass.java:220)
at java.security.AccessController.doPrivileged(Native Method)
at java.io.ObjectStreamClass.getSerialVersionUID(ObjectStreamClass.java:219)
at java.io.ObjectStreamClass.writeNonProxy(ObjectStreamClass.java:684)
at java.io.ObjectOutputStream.writeClassDescriptor(ObjectOutputStream.java:657)
at java.io.ObjectOutputStream.writeNonProxyDesc(ObjectOutputStream.java:1262)
at java.io.ObjectOutputStream.writeClassDesc(ObjectOutputStream.java:1220)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1404)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1167)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1526)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1491)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1409)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1167)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:343)
at javasoft.sqe.serial.util.Convert.writeObjectToByteArray(Convert.java:69)
at javasoft.sqe.serial.util.Convert.objectToStreamObject(Convert.java:36)
at javasoft.sqe.tests.api.java.beans.beancontext.BeanContextServicesSupport.BCSSServiceProvider.se
rial.ConstructorTests.serial2001(ConstructorTests.java:61)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:623)
at javasoft.sqe.javatest.lib.MultiTest.invokeTestCase(MultiTest.java:406)
at javasoft.sqe.javatest.lib.MultiTest.run(MultiTest.java:195)
at nsk.stress.share.StressTest$TestThread.runTest(StressTest.java:739)
at nsk.stress.share.StressTest$TestThread.run(StressTest.java:755)
"Thread-39":
at sun.security.jca.ProviderConfig.getProvider(ProviderConfig.java:168)
- waiting to lock <0xc2d45810> (a sun.security.jca.ProviderConfig)
at sun.security.jca.ProviderList.loadAll(ProviderList.java:281)
at sun.security.jca.ProviderList.removeInvalid(ProviderList.java:298)
at sun.security.jca.Providers.getFullProviderList(Providers.java:170)
- locked <0xc6d713c0> (a java.lang.Class for sun.security.jca.Providers)
at java.security.Security.getProviders(Security.java:457)
at javasoft.sqe.jck.lib.ProviderTest.initialize(ProviderTest.java:326)
at javasoft.sqe.jck.lib.ProviderTest.init(ProviderTest.java:272)
at javasoft.sqe.javatest.lib.MultiTest.init(MultiTest.java:545)
at javasoft.sqe.javatest.lib.MultiTest.run(MultiTest.java:168)
at nsk.stress.share.StressTest$TestThread.runTest(StressTest.java:739)
at nsk.stress.share.StressTest$TestThread.run(StressTest.java:755)
Found 1 deadlock.
===================
- relates to
-
JDK-6984901 ClassLoader.getResource and loadClass deadlock when signed jar is verified
- Closed
-
JDK-6984006 Deadlock loading signed jar
- Closed