[jboss-jira] [JBoss JIRA] Commented: (JBAS-5095) Race condition between connection.close() and transaction.rollback() causes connection leak

Adrian Brock (JIRA) jira-events at lists.jboss.org
Thu Dec 20 12:03:43 EST 2007


    [ http://jira.jboss.com/jira/browse/JBAS-5095?page=comments#action_12393156 ] 
            
Adrian Brock commented on JBAS-5095:
------------------------------------

I've committed a fix in 4.2.x that works around the problem in the InternalManagedConnectionPool
by avoiding the duplciate return and logging a warning.
But the underlying problem (the race in TxConnectionManager) needs fixing properly.

> Race condition between connection.close() and transaction.rollback() causes connection leak
> -------------------------------------------------------------------------------------------
>
>                 Key: JBAS-5095
>                 URL: http://jira.jboss.com/jira/browse/JBAS-5095
>             Project: JBoss Application Server
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: JCA service
>    Affects Versions: JBossAS-4.2.2.GA
>            Reporter: Adrian Brock
>         Assigned To: Adrian Brock
>             Fix For: JBossAS-5.0.0.CR1, JBossAS-4.2.3.GA
>
>
> There is a race condition between the connection.close() and an asynchronous transaction completion
> (e.g. transaction timeout) that can lead to a leaked connection permit with eventual pool exhaustion
> when using track-connection-by-tx (i.e. all local resources).
> The problem is caused in the TxConnectionManager where the unregister assoication and the afterCompletion
> are not synchronized with each other. Both can see the connection as ready to return to the pool
> (one removes the handle, the other the synchronization at about the same time so they both check
> the same state) and both do it.
> The InternalManagedConnectionPool does not check for duplicate returns and uses an ArrayList to
> store connections (for the MRU behaviour). So the connection ends up in the pool twice
> This eventually causes problems like the leaked permit.

-- 
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