[
http://jira.jboss.com/jira/browse/JBAS-5095?page=all ]
Dimitris Andreadis updated JBAS-5095:
-------------------------------------
Fix Version/s: JBossAS-5.0.0.CR2
JBossAS-4.2.3.GA
(was: JBossAS-5.0.0.CR1)
Adding 4.2.3 fix version and rescheduling for AS5 CR2. Or the issue could be resolved
since the workaround is there and a new one created for the final/proper fix.
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
Priority: Critical
Fix For: JBossAS-5.0.0.CR2, 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