[jboss-jira] [JBoss JIRA] Closed: (JBAOP-500) Deadlock involving Interceptor Chain lock and class loading
Flavia Rainone (JIRA)
jira-events at lists.jboss.org
Sat Jan 5 16:42:49 EST 2008
[ http://jira.jboss.com/jira/browse/JBAOP-500?page=all ]
Flavia Rainone closed JBAOP-500.
--------------------------------
Resolution: Done
> Deadlock involving Interceptor Chain lock and class loading
> -----------------------------------------------------------
>
> Key: JBAOP-500
> URL: http://jira.jboss.com/jira/browse/JBAOP-500
> Project: JBoss AOP
> Issue Type: Sub-task
> Security Level: Public(Everyone can see)
> Affects Versions: 2.0.0.CR2
> Reporter: Flavia Rainone
> Assigned To: Flavia Rainone
> Fix For: 2.0.0.GA
>
> Attachments: threaddump2.txt
>
>
> This deadlock can be reproduced by running the rebuildingchain test (written to detect bug JBAOP-380)
> The scenario of this deadlock is the following:
> -Thread 0 (org.jboss.test.aop.rebuldingchain.SyncThread)
> When this thread calls the joinpoint SyncThread.checkStatus, its wrapper is executed. This wrapper needs to generate the Joinpoint class to do interception and, hence, acquires the lock for InterceptorChain read. As part of the generation fo the Joinpoint class, this class must be loaded. When the class loader loads this class, AOPTransformer is invoked. This class triggers the transformation of the class, which requires the AspectManager lock.
> - Thread 1 (org.jboss.test.aop.rebuildingchain.RebuildThread)
> This thread adds a binding to AspectManager. As part of the addBinding method execution, the AspectManager lock is acquired. As soon as the binding is addded to the bindings collection, the affect advisors have to rebuild their interceptor chains. SyncThread advisor is the affected advisor in this scenario and, to rebuild chains, it needs the write lock for the SyncThread.checkStatus inteceptor chain. This thread starts waiting for Thread0 to release the interceptor chain read lock.
> - Main Thread
> Waits for the other two threads to finish.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list