[
https://issues.apache.org/jira/browse/FELIX-3728?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13483343#comment-13483343
]
Ulf Lilleengen commented on FELIX-3728:
---------------------------------------
The only difference is the OS and java version AFAICT. Thanks.
> 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