Antoine DESSAIGNE created FELIX-5942:
----------------------------------------

             Summary: Felix Framework freezes when resolving classes in 
parallel with Java 10
                 Key: FELIX-5942
                 URL: https://issues.apache.org/jira/browse/FELIX-5942
             Project: Felix
          Issue Type: Bug
          Components: Framework
    Affects Versions: framework-6.0.1
            Reporter: Antoine DESSAIGNE
         Attachments: ConcurrentClassLoaderTest.java

Hello.

When resolving a class in parallel in Java 10, you end up with a freeze.

You end up with threads beeing blocked
{noformat}
"Thread-99" #121 prio=5 os_prio=0 tid=0x000001bdaf679000 nid=0x69d4 in 
Object.wait()  [0x000000296d0fe000]
   java.lang.Thread.State: BLOCKED (on object monitor)
        at java.lang.Object.wait([email protected]/Native Method)
        - waiting on <0x00000006c931dd20> (a [Ljava.lang.Object;)
        at java.lang.Object.wait([email protected]/Object.java:328)
        at org.apache.felix.framework.Felix.acquireGlobalLock(Felix.java:4301)
        - waiting to re-lock in wait() <0x00000006c931dd20> (a 
[Ljava.lang.Object;)
        at 
org.apache.felix.framework.StatefulResolver.resolve(StatefulResolver.java:413)
        at 
org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:3318)
        at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1618)
        at org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:978)
        at 
org.apache.felix.framework.ConcurrentClassLoaderTest$1.run(ConcurrentClassLoaderTest.java:69){noformat}

You'll find attached a test reproducing the issue.

Here's what you need to freeze felix :
* Lots of threads trying to acquire the global lock
** Here we're resolving a class from a bundle with dynamic import packages
* A Java 10 runtime



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to