[jboss-jira] [JBoss JIRA] Commented: (JBAOP-713) Deadlock on Rebuildingchain test
Flavia Rainone (JIRA)
jira-events at lists.jboss.org
Tue Apr 14 00:42:22 EDT 2009
[ https://jira.jboss.org/jira/browse/JBAOP-713?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12461954#action_12461954 ]
Flavia Rainone commented on JBAOP-713:
--------------------------------------
Another thread dump of a second scenario of deadlock suggests that we have extra locks for what needs to be done:
Thread-2" prio=1 tid=0x8c72dfa8 nid=0x38c3 waiting for monitor entry [0x8c969000..0x8c96c030]
at org.jboss.aop.AspectManager.translate(AspectManager.java:1048)
- waiting to lock <0xaf700088> (a org.jboss.aop.AspectManager)
at org.jboss.aop.AspectManager.transform(AspectManager.java:1010)
at org.jboss.aop.standalone.AOPTransformer.aspectTransform(AOPTransformer.java:87)
at org.jboss.aop.standalone.AOPTransformer.transform(AOPTransformer.java:75)
at sun.instrument.TransformerManager.transform(TransformerManager.java:122)
at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:155)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
- locked <0xaf7012b8> (a sun.misc.Launcher$AppClassLoader)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
- locked <0xaf7012b8> (a sun.misc.Launcher$AppClassLoader)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
- locked <0xaf7012b8> (a sun.misc.Launcher$AppClassLoader)
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2259)
at java.lang.Class.getField0(Class.java:2590)
at java.lang.Class.getField(Class.java:1505)
at org.jboss.aop.instrument.JoinPointGenerator.findAdvisedField(JoinPointGenerator.java:497)
at org.jboss.aop.instrument.JoinPointGenerator.<init>(JoinPointGenerator.java:187)
at org.jboss.aop.instrument.ConstructorJoinPointGenerator.<init>(ConstructorJoinPointGenerator.java:75)
at org.jboss.aop.GeneratedClassAdvisor$ClassAdvisorStrategy.getJoinPointGenerator(GeneratedClassAdvisor.java:1364)
at org.jboss.aop.GeneratedClassAdvisor$ClassAdvisorStrategy.finalizeConstructorChain(GeneratedClassAdvisor.java:1564)
at org.jboss.aop.GeneratedClassAdvisor.finalizeChains(GeneratedClassAdvisor.java:580)
at org.jboss.aop.ClassAdvisor.createInterceptorChains(ClassAdvisor.java:607)
at org.jboss.aop.GeneratedClassAdvisor.access$201(GeneratedClassAdvisor.java:65)
at org.jboss.aop.GeneratedClassAdvisor$ClassAdvisorStrategy.createInterceptorChains(GeneratedClassAdvisor.java:1305)
at org.jboss.aop.GeneratedClassAdvisor.createInterceptorChains(GeneratedClassAdvisor.java:407)
at org.jboss.aop.ClassAdvisor$1.run(ClassAdvisor.java:304)
at java.security.AccessController.doPrivileged(Native Method)
at org.jboss.aop.ClassAdvisor.attachClass(ClassAdvisor.java:274)
- locked <0xae219188> (a org.jboss.test.aop.rebuildingchain.ConstructorExecutionSyncThread$Pojo$ConstructorExecutionSyncThread$PojoAdvisor)
at org.jboss.aop.AspectManager.initialiseClassAdvisor(AspectManager.java:743)
- locked <0xae21a9c8> (a java.util.WeakHashMap)
- locked <0xae21a918> (a org.jboss.aop.GeneratedAdvisorDomain)
at org.jboss.aop.GeneratedClassAdvisor$ClassAdvisorStrategy.initialise(GeneratedClassAdvisor.java:1293)
at org.jboss.aop.GeneratedClassAdvisor.initialise(GeneratedClassAdvisor.java:143)
at org.jboss.test.aop.rebuildingchain.ConstructorExecutionSyncThread$Pojo$ConstructorExecutionSyncThread$PojoAdvisor.initialise(ConstructorExecutionSyncThread$Pojo$ConstructorExecutionSyncThread$PojoAdvisor.java)
at org.jboss.test.aop.rebuildingchain.ConstructorExecutionSyncThread$Pojo$ConstructorExecutionSyncThread$PojoAdvisor.<init>(ConstructorExecutionSyncThread$Pojo$ConstructorExecutionSyncThread$PojoAdvisor.java)
at org.jboss.test.aop.rebuildingchain.ConstructorExecutionSyncThread$Pojo.<clinit>(ConstructorExecutionSyncThread.java)
at org.jboss.test.aop.rebuildingchain.ConstructorExecutionSyncThread.invokeJoinPoint(ConstructorExecutionSyncThread.java:36)
at org.jboss.test.aop.rebuildingchain.SyncThread.run(SyncThread.java:44)
"Thread-3" prio=1 tid=0x8c714b20 nid=0x38c2 waiting on condition [0x8c8ea000..0x8c8eafb0]
at sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:681)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:711)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1041)
at java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync.wlock(ReentrantReadWriteLock.java:342)
at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(ReentrantReadWriteLock.java:637)
at org.jboss.aop.util.AOPLock.lockWrite(AOPLock.java:59)
at org.jboss.aop.AspectManager.addBinding(AspectManager.java:1464)
- locked <0xaf700088> (a org.jboss.aop.AspectManager)
at org.jboss.test.aop.rebuildingchain.RebuildThread.linkNewAdvice(RebuildThread.java:84)
at org.jboss.test.aop.rebuildingchain.RebuildThread.run(RebuildThread.java:53)
"ReaderThread" prio=1 tid=0x8ca60228 nid=0x38bf runnable [0x8c9ec000..0x8c9ece30]
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(StreamDecoder.java:411)
at sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:453)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:183)
- locked <0x91bb7a78> (a java.io.InputStreamReader)
at java.io.InputStreamReader.read(InputStreamReader.java:167)
at java.io.BufferedReader.fill(BufferedReader.java:136)
at java.io.BufferedReader.readLine(BufferedReader.java:299)
- locked <0x91bb7a78> (a java.io.InputStreamReader)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner$ReaderThread.run(RemoteTestRunner.java:140)
"Low Memory Detector" daemon prio=1 tid=0x0a2451e8 nid=0x38bd runnable [0x00000000..0x00000000]
"CompilerThread1" daemon prio=1 tid=0x0a243d28 nid=0x38bc waiting on condition [0x00000000..0x8cc91098]
"CompilerThread0" daemon prio=1 tid=0x0a1f8cd0 nid=0x38bb waiting on condition [0x00000000..0x8cd12258]
"AdapterThread" daemon prio=1 tid=0x0a1e7f28 nid=0x38ba waiting on condition [0x00000000..0x00000000]
"Signal Dispatcher" daemon prio=1 tid=0x0a1eb930 nid=0x38b9 waiting on condition [0x00000000..0x00000000]
"Finalizer" daemon prio=1 tid=0x0a0c5a38 nid=0x38b7 in Object.wait() [0x8d74b000..0x8d74c0b0]
at java.lang.Object.wait(Native Method)
- waiting on <0xaf74c2a0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
- locked <0xaf74c2a0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
"Reference Handler" daemon prio=1 tid=0x0a0c43c8 nid=0x38b6 in Object.wait() [0x8d7cc000..0x8d7cce30]
at java.lang.Object.wait(Native Method)
- waiting on <0xaf7a6da0> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:474)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
- locked <0xaf7a6da0> (a java.lang.ref.Reference$Lock)
"main" prio=1 tid=0x0a01ed48 nid=0x38ad in Object.wait() [0xbfc67000..0xbfc67ad8]
at java.lang.Object.wait(Native Method)
- waiting on <0xae11d068> (a org.jboss.test.aop.rebuildingchain.ConstructorExecutionSyncThread)
at java.lang.Thread.join(Thread.java:1095)
- locked <0xae11d068> (a org.jboss.test.aop.rebuildingchain.ConstructorExecutionSyncThread)
at java.lang.Thread.join(Thread.java:1148)
at org.jboss.test.aop.rebuildingchain.RebuildingChainTestCase.assertRebuildingChainWithJoin(RebuildingChainTestCase.java:236)
at org.jboss.test.aop.rebuildingchain.RebuildingChainTestCase.testConstructorExecutionWithJoin(RebuildingChainTestCase.java:115)
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:585)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
"VM Thread" prio=1 tid=0x0a0c1ec8 nid=0x38b5 runnable
"GC task thread#0 (ParallelGC)" prio=1 tid=0x0a038cd8 nid=0x38b3 runnable
"GC task thread#1 (ParallelGC)" prio=1 tid=0x0a039928 nid=0x38b4 runnable
"VM Periodic Task Thread" prio=1 tid=0x0a23af10 nid=0x38be waiting on condition
> Deadlock on Rebuildingchain test
> --------------------------------
>
> Key: JBAOP-713
> URL: https://jira.jboss.org/jira/browse/JBAOP-713
> Project: JBoss AOP
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Affects Versions: 2.1.0.CR2
> Reporter: Flavia Rainone
> Assignee: Flavia Rainone
> Fix For: 2.0.2.GA
>
>
> I found this deadlock when fixing JBAOP-567:
> [junit] Full thread dump Java HotSpot(TM) Server VM (1.5.0_12-b04 mixed mode):
> [junit]
> [junit] "Thread-19" prio=1 tid=0x8c86a4a0 nid=0x22a8 waiting on condition [0x8c9a4000..0x8c9a5130]
> [junit] at sun.misc.Unsafe.park(Native Method)
> [junit] at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
> [junit] at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:716)
> [junit] at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:746)
> [junit] at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1076)
> [junit] at java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync.wlock(ReentrantReadWriteLock.java:342)
> [junit] at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(ReentrantReadWriteLock.java:637)
> [junit] at org.jboss.aop.Advisor.lockWriteChain(Advisor.java:1795)
> [junit] at org.jboss.aop.ClassAdvisor.lockWriteChains(ClassAdvisor.java:706)
> [junit] at org.jboss.aop.ClassAdvisor.doRebuildInterceptorsForAddedBinding(ClassAdvisor.java:1156)
> [junit] at org.jboss.aop.ClassAdvisor$RebuildInterceptorsAction$1$2.run(ClassAdvisor.java:2297)
> [junit] at java.security.AccessController.doPrivileged(Native Method)
> [junit] at org.jboss.aop.ClassAdvisor$RebuildInterceptorsAction$1.rebuildInterceptorsForAddedBinding(ClassAdvisor.java:2293)
> [junit] at org.jboss.aop.ClassAdvisor.rebuildInterceptorsForAddedBinding(ClassAdvisor.java:1143)
> [junit] at org.jboss.aop.GeneratedClassAdvisor.access$1501(GeneratedClassAdvisor.java:65)
> [junit] at org.jboss.aop.GeneratedClassAdvisor$ClassAdvisorStrategy.rebuildInterceptorsForAddedBinding(GeneratedClassAdvisor.java:1538)
> [junit] at org.jboss.aop.GeneratedClassAdvisor.rebuildInterceptorsForAddedBinding(GeneratedClassAdvisor.java:244)
> [junit] at org.jboss.aop.Advisor.newBindingAdded(Advisor.java:1124)
> [junit] - locked <0xadd75028> (a org.jboss.test.aop.rebuildingchain.ConstructorExecutionSyncThread$Pojo$ConstructorExecutionSyncThread$PojoAdvisor)
> [junit] at org.jboss.aop.AspectManager.updateAdvisorsForAddedBinding(AspectManager.java:1515)
> [junit] - locked <0xadd76870> (a java.util.WeakHashMap)
> [junit] at org.jboss.aop.AspectManager.updateAdvisorsForAddedBinding(AspectManager.java:1538)
> [junit] - locked <0x91c3aaa0> (a java.util.WeakHashMap)
> [junit] at org.jboss.aop.AspectManager.addBinding(AspectManager.java:1473)
> [junit] - locked <0x91bf58d8> (a java.util.WeakHashMap)
> [junit] at org.jboss.test.aop.rebuildingchain.RebuildThread.linkNewAdvice(RebuildThread.java:84)
> [junit] at org.jboss.test.aop.rebuildingchain.RebuildThread.run(RebuildThread.java:53)
> [junit]
> [junit] "Low Memory Detector" daemon prio=1 tid=0x8d60dbb0 nid=0x2292 runnable [0x00000000..0x00000000]
> [junit]
> [junit] "CompilerThread1" daemon prio=1 tid=0x8d60c7b0 nid=0x2291 waiting on condition [0x00000000..0x8d1fa018]
> [junit]
> [junit] "CompilerThread0" daemon prio=1 tid=0x8d60b810 nid=0x2290 waiting on condition [0x00000000..0x8d27b198]
> [junit]
> [junit] "AdapterThread" daemon prio=1 tid=0x8d60a840 nid=0x228f waiting on condition [0x00000000..0x00000000]
> [junit]
> [junit] "Signal Dispatcher" daemon prio=1 tid=0x8d609950 nid=0x228e waiting on condition [0x00000000..0x00000000]
> [junit]
> [junit] "Finalizer" daemon prio=1 tid=0x8d6004b0 nid=0x228c in Object.wait() [0x8d5fe000..0x8d5ff0b0]
> [junit] at java.lang.Object.wait(Native Method)
> [junit] - waiting on <0x91c21260> (a java.lang.ref.ReferenceQueue$Lock)
> [junit] at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
> [junit] - locked <0x91c21260> (a java.lang.ref.ReferenceQueue$Lock)
> [junit] at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
> [junit] at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
> [junit]
> [junit] "Reference Handler" daemon prio=1 tid=0x0921f1a0 nid=0x228b in Object.wait() [0x8d79c000..0x8d79ce30]
> [junit] at java.lang.Object.wait(Native Method)
> [junit] - waiting on <0x91c249e0> (a java.lang.ref.Reference$Lock)
> [junit] at java.lang.Object.wait(Object.java:474)
> [junit] at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
> [junit] - locked <0x91c249e0> (a java.lang.ref.Reference$Lock)
> [junit]
> [junit] "main" prio=1 tid=0x09179988 nid=0x2285 in Object.wait() [0xbfd97000..0xbfd97d68]
> [junit] at java.lang.Object.wait(Native Method)
> [junit] - waiting on <0xadfc0540> (a org.jboss.test.aop.rebuildingchain.RebuildThread)
> [junit] at java.lang.Thread.join(Thread.java:1095)
> [junit] - locked <0xadfc0540> (a org.jboss.test.aop.rebuildingchain.RebuildThread)
> [junit] at java.lang.Thread.join(Thread.java:1148)
> [junit] at org.jboss.test.aop.rebuildingchain.RebuildingChainTestCase.assertRebuildingChainWithJoin(RebuildingChainTestCase.java:237)
> [junit] at org.jboss.test.aop.rebuildingchain.RebuildingChainTestCase.testConstructorExecutionWithJoin(RebuildingChainTestCase.java:115)
> [junit] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> [junit] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> [junit] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> [junit] at java.lang.reflect.Method.invoke(Method.java:585)
> [junit] at junit.framework.TestCase.runTest(TestCase.java:154)
> [junit] at junit.framework.TestCase.runBare(TestCase.java:127)
> [junit] at junit.framework.TestResult$1.protect(TestResult.java:106)
> [junit] at junit.framework.TestResult.runProtected(TestResult.java:124)
> [junit] at junit.framework.TestResult.run(TestResult.java:109)
> [junit] at junit.framework.TestCase.run(TestCase.java:118)
> [junit] at junit.framework.TestSuite.runTest(TestSuite.java:208)
> [junit] at junit.framework.TestSuite.run(TestSuite.java:203)
> [junit] at junit.framework.TestSuite.runTest(TestSuite.java:208)
> [junit] at junit.framework.TestSuite.run(TestSuite.java:203)
> [junit] at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:421)
> [junit] at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:912)
> [junit] at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:766)
> [junit]
> [junit] "VM Thread" prio=1 tid=0x0921cc68 nid=0x228a runnable
> [junit]
> [junit] "GC task thread#0 (ParallelGC)" prio=1 tid=0x09193a78 nid=0x2288 runnable
> [junit]
> [junit] "GC task thread#1 (ParallelGC)" prio=1 tid=0x091946c8 nid=0x2289 runnable
> [junit]
> [junit] "VM Periodic Task Thread" prio=1 tid=0x8d60f748 nid=0x2293 waiting on condition
> [junit]
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list