[ 
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

Reply via email to