Java deadlock between LogicalConnection40 and ClientXAConnection40
------------------------------------------------------------------
Key: DERBY-5560
URL: https://issues.apache.org/jira/browse/DERBY-5560
Project: Derby
Issue Type: Bug
Components: Network Client
Affects Versions: 10.8.2.2
Environment: Solaris 10
Glassfish V2.1.1
ClientXADataSource connection pool setup to close all connections on any error
Reporter: Brett Bergquist
There is a Java deadlock between LogicalConnection40 and ClientXAConnection40. The order
of calls that cause the deadlock are:
Thread 1
----
LogicalConnection.close
ClientPooledConnection.recycleConnection
Thread 2
----
ClientPooledConnection.close
LogicalConnection.nullPhysicalConnection
Thread 1 acquires a lock on the LogicalConnection and attempts to acquire a lock on the ClientPooledConnection
Thread 2 acquires a lock on the ClientPooledConnection and attempts to acquire a lock on the
LogicalConnection
In production this occurs when one thread is committing a transaction and another thread is
trying to close the connection. This occurred because the Glassfish connection pool is setup
to close all connections on any error on any connection and an error has been detected on
another connection in the pool.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
|