You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Richard S. Hall" <he...@ungoverned.org> on 2009/07/08 20:16:09 UTC

Re: [jira] Commented: (FELIX-1311) Felix shutdown may lead to dead lock

Sorry for the noise. I wasn't seeing my comments being posted, so I kept 
recreating them, but apparently they were all successfully recorded.

-> richard

On 07/08/2009 06:13 PM, Richard S. Hall (JIRA) wrote:
>      [ https://issues.apache.org/jira/browse/FELIX-1311?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12728932#action_12728932 ]
>
> Richard S. Hall commented on FELIX-1311:
> ----------------------------------------
>
> For FELIX-1287, we introduced some changes in this area which may impact and/or fix this issue. Could you try to reproduce this on trunk? Even if it doesn't fix the issue, an updated thread dump would be helpful, thanks!
>
>    
>> Felix shutdown may lead to dead lock
>> ------------------------------------
>>
>>                  Key: FELIX-1311
>>                  URL: https://issues.apache.org/jira/browse/FELIX-1311
>>              Project: Felix
>>           Issue Type: Bug
>>           Components: Framework
>>     Affects Versions: felix-1.8.1
>>             Reporter: Thomas Diesler
>>          Attachments: thread-dump.txt
>>
>>
>> There seems to be a race condition on felix shutdown that may lead to a dead lock.
>> Java stack information for the threads listed above:
>> ===================================================
>> "FelixShutdown":
>> 	at org.apache.felix.framework.Felix.setBundleStateAndNotify(Felix.java:4258)
>> 	- waiting to lock<0x8c92ec10>  (a [Ljava.lang.Object;)
>> 	at org.apache.felix.framework.Felix$SystemBundleActivator.run(Felix.java:4061)
>> 	- locked<0x8c92e490>  (a org.apache.felix.framework.Felix)
>> 	at java.lang.Thread.run(Thread.java:619)
>> "main":
>> 	at org.apache.felix.framework.BundleImpl.getLockingThread(BundleImpl.java:1037)
>> 	- waiting to lock<0x8c92e490>  (a org.apache.felix.framework.Felix)
>> 	at org.apache.felix.framework.Felix.releaseBundleLock(Felix.java:4336)
>> 	- locked<0x8c92ec10>  (a [Ljava.lang.Object;)
>> 	at org.apache.felix.framework.Felix.stopBundle(Felix.java:1892)
>> 	at org.apache.felix.framework.Felix.stop(Felix.java:752)
>> 	at org.jboss.osgi.felix.framework.FelixIntegration.stop(FelixIntegration.java:191)
>> 	at org.jboss.osgi.spi.testing.internal.EmbeddedRuntime.shutdown(EmbeddedRuntime.java:152)
>> 	at org.jboss.test.osgi.bootstrap.CapabilityTestCase.testJAXBCapability(CapabilityTestCase.java:103)
>> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>> 	at java.lang.reflect.Method.invoke(Method.java:597)
>> 	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
>> 	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
>> 	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
>> 	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
>> 	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
>> 	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
>> 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
>> 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:44)
>> 	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
>> 	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
>> 	at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
>> 	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
>> 	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
>> 	at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
>> 	at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
>> 	at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
>> 	at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
>> 	at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
>> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>> 	at java.lang.reflect.Method.invoke(Method.java:597)
>> 	at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:338)
>> 	at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:997)
>> Found 1 deadlock.
>>      
>
>