[ https://issues.apache.org/jira/browse/FELIX-3728?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Richard S. Hall closed FELIX-3728. ---------------------------------- Resolution: Duplicate This issue appears to be the same as FELIX-3369, so let's close this and just track it on the original issue unless you feel this issue is different somehow. > Classloading deadlock in BundleWiringImpl with multiple threads > ---------------------------------------------------------------- > > Key: FELIX-3728 > URL: https://issues.apache.org/jira/browse/FELIX-3728 > Project: Felix > Issue Type: Bug > Components: Framework > Affects Versions: framework-4.0.3 > Environment: RHEL 6.2 > JVM 1.7.0_05 > Intel(R) Xeon(R) CPU E5530 @ 2.40GHz with 16 CPU cores 48922464 kB ram > Reporter: Ulf Lilleengen > > I think we have encountered the same issue as in > https://issues.apache.org/jira/browse/FELIX-3369 in a system which does a lot > of class loading across bundles from multiple threads. Two threads are stuck > in a deadlock when loading the same class. Stack trace: > [14:28:56.140] Found one Java-level deadlock: > [14:28:56.140] ============================= > [14:28:56.140] "Queue runner 6": > [14:28:56.140] waiting to lock monitor 0x00007f444405c5c0 (object > 0x000000009cce8dc0, a > org.apache.felix.framework.BundleWiringImpl$BundleClassLoaderJava5), > [14:28:56.140] which is held by "Queue runner 4" > [14:28:56.140] "Queue runner 4": > [14:28:56.140] waiting to lock monitor 0x00007f444405c668 (object > 0x00000000834baff0, a > org.apache.felix.framework.BundleWiringImpl$BundleClassLoaderJava5), > [14:28:56.140] which is held by "Queue runner 6" > [14:28:56.140] > [14:28:56.140] Java stack information for the threads listed above: > [14:28:56.140] =================================================== > [14:28:56.141] "Queue runner 6": > [14:28:56.141] at > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1836) > > [14:28:56.141] - waiting to lock <0x000000009cce8dc0> (a > org.apache.felix.framework.BundleWiringImpl$BundleClassLoaderJava5) > [14:28:56.141] at java.lang.ClassLoader.loadClass(ClassLoader.java:356) > [14:28:56.141] at > org.apache.felix.framework.BundleWiringImpl.getClassByDelegation(BundleWiringImpl.java:1317) > > [14:28:56.141] at > org.apache.felix.framework.BundleWiringImpl.searchImports(BundleWiringImpl.java:1481) > > [14:28:56.141] at > org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1427) > > [14:28:56.141] at > org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:72) > > [14:28:56.141] at > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1843) > > [14:28:56.141] at java.lang.ClassLoader.loadClass(ClassLoader.java:356) > [14:28:56.141] at java.lang.ClassLoader.defineClass1(Native Method) > [14:28:56.141] at java.lang.ClassLoader.defineClass(ClassLoader.java:791) > [14:28:56.142] at > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.findClass(BundleWiringImpl.java:2128) > > [14:28:56.142] - locked <0x00000000834baff0> (a > org.apache.felix.framework.BundleWiringImpl$BundleClassLoaderJava5) > [14:28:56.142] at > org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1432) > > [14:28:56.142] at > org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:72) > > [14:28:56.142] at > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1843) > > [14:28:56.142] at java.lang.ClassLoader.loadClass(ClassLoader.java:356) > .... > [14:28:56.143] at java.lang.Thread.run(Thread.java:722) > [14:28:56.143] "Queue runner 4": > [14:28:56.143] at > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1836) > > [14:28:56.143] - waiting to lock <0x00000000834baff0> (a > org.apache.felix.framework.BundleWiringImpl$BundleClassLoaderJava5) > [14:28:56.143] at java.lang.ClassLoader.loadClass(ClassLoader.java:356) > [14:28:56.143] at > org.apache.felix.framework.BundleWiringImpl.getClassByDelegation(BundleWiringImpl.java:1317) > > [14:28:56.143] at > org.apache.felix.framework.BundleWiringImpl.searchImports(BundleWiringImpl.java:1481) > > [14:28:56.143] at > org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1427) > > [14:28:56.143] at > org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:72) > > [14:28:56.143] at > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1843) > > [14:28:56.143] at java.lang.ClassLoader.loadClass(ClassLoader.java:356) > .... > [14:28:56.144] at java.lang.Thread.run(Thread.java:722) > Let me know if you would like more info. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira