deadlock in closeconnection in n HA branch
ataylor Aug 17, 2010 6:45 AMfyi, heres the deadlock that occurs
Found one Java-level deadlock:
=============================
"Thread-1 (group:HornetQ-client-global-threads-23438274)":
waiting to lock monitor 0x087b99c8 (object 0xb0506728, a org.hornetq.core.client.impl.ClientSessionFactoryImpl$FailoverLock),
which is held by "Thread-3"
"Thread-3":
waiting to lock monitor 0x087b9964 (object 0xb050cfc8, a org.hornetq.core.client.impl.ClientSessionImpl),
which is held by "Thread-2"
"Thread-2":
waiting to lock monitor 0x8f746304 (object 0xb0506718, a org.hornetq.core.client.impl.ClientSessionFactoryImpl$CreateSessionLock),
which is held by "Thread-3"
Java stack information for the threads listed above:
===================================================
"Thread-1 (group:HornetQ-client-global-threads-23438274)":
at org.hornetq.core.client.impl.ClientSessionFactoryImpl.failoverOrReconnect(ClientSessionFactoryImpl.java:454)
- waiting to lock <0xb0506728> (a org.hornetq.core.client.impl.ClientSessionFactoryImpl$FailoverLock)
at org.hornetq.core.client.impl.ClientSessionFactoryImpl.handleConnectionFailure(ClientSessionFactoryImpl.java:445)
at org.hornetq.core.client.impl.ClientSessionFactoryImpl.connectionDestroyed(ClientSessionFactoryImpl.java:341)
at org.hornetq.core.remoting.impl.invm.InVMConnector$Listener$1.run(InVMConnector.java:200)
at org.hornetq.utils.OrderedExecutorFactory$OrderedExecutor$1.run(OrderedExecutorFactory.java:96)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
"Thread-3":
at org.hornetq.core.client.impl.ClientSessionImpl.doCleanup(ClientSessionImpl.java:1670)
- waiting to lock <0xb050cfc8> (a org.hornetq.core.client.impl.ClientSessionImpl)
at org.hornetq.core.client.impl.ClientSessionImpl.close(ClientSessionImpl.java:841)
at org.hornetq.core.client.impl.ClientSessionFactoryImpl.close(ClientSessionFactoryImpl.java:404)
- locked <0xb0506728> (a org.hornetq.core.client.impl.ClientSessionFactoryImpl$FailoverLock)
- locked <0xb0506718> (a org.hornetq.core.client.impl.ClientSessionFactoryImpl$CreateSessionLock)
at org.hornetq.jms.client.HornetQConnection.close(HornetQConnection.java:254)
- locked <0xb0508e38> (a org.hornetq.jms.client.HornetQConnection)
at org.hornetq.tests.integration.client.FailureDeadlockTest$1.onException(FailureDeadlockTest.java:132)
at org.hornetq.jms.client.HornetQConnection$JMSFailureListener$1.run(HornetQConnection.java:611)
at java.lang.Thread.run(Thread.java:619)
"Thread-2":
at org.hornetq.core.client.impl.ClientSessionFactoryImpl.removeSession(ClientSessionFactoryImpl.java:356)
- waiting to lock <0xb0506718> (a org.hornetq.core.client.impl.ClientSessionFactoryImpl$CreateSessionLock)
at org.hornetq.core.client.impl.ClientSessionImpl.doCleanup(ClientSessionImpl.java:1675)
at org.hornetq.core.client.impl.ClientSessionImpl.cleanUp(ClientSessionImpl.java:855)
- locked <0xb050cfc8> (a org.hornetq.core.client.impl.ClientSessionImpl)
at org.hornetq.core.client.impl.ClientSessionFactoryImpl.failoverOrReconnect(ClientSessionFactoryImpl.java:613)
at org.hornetq.core.client.impl.ClientSessionFactoryImpl.handleConnectionFailure(ClientSessionFactoryImpl.java:445)
at org.hornetq.core.client.impl.ClientSessionFactoryImpl.access$700(ClientSessionFactoryImpl.java:72)
at org.hornetq.core.client.impl.ClientSessionFactoryImpl$DelegatingFailureListener.connectionFailed(ClientSessionFactoryImpl.java:1193)
at org.hornetq.core.protocol.core.impl.RemotingConnectionImpl.callFailureListeners(RemotingConnectionImpl.java:482)
at org.hornetq.core.protocol.core.impl.RemotingConnectionImpl.fail(RemotingConnectionImpl.java:254)
at org.hornetq.tests.integration.client.FailureDeadlockTest$Failer.run(FailureDeadlockTest.java:175)
Found 1 deadlock.