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

        

Reply via email to