Hi all,
Unfortunately we've hit a deadlock in the Java client, stack trace
below. The connection string we're using looks like this:
property.amqp.connection.url = amqp://guest:gu...@clientid/test?
brokerlist='tcp://amqf001:5672?connectdelay='5000',retries='2';tcp://
amqf002:5672?
connectdelay='5000',retries='2'',maxprefetch='1',failover='roundrobin?
cyclecount='99999''
We're using shared connection factories in a Spring context. I'm
wondering if a quick workaround may be to run individual factories?
Cheers,
Andrew
Circular (deadlocked) lock chains
=================================
Chain 6:
"hierarchyBuildCacheListenerContainer1-1" id=262140 idx=0x34c
tid=13555 waiting for java/lang/obj...@0xf1e9d58 held by:
"[STANDBY] ExecuteThread: '3' for queue: 'weblogic.kernel.Default
(self-tuning)'" id=246 idx=0x3c8 tid=26015 waiting for java/lang/
obj...@0xf1ea030 held by: "hierarchyBuildCacheListenerContainer1-1"
id=262140 idx=0x34c tid=13555
"[STANDBY] ExecuteThread: '3' for queue: 'weblogic.kernel.Default
(self-tuning)'" id=246 idx=0x3c8 tid=26015 prio=5 alive, in native,
blocked, daemon
-- Blocked trying to get lock: java/lang/obj...@0xf1ea030[thin
lock]
at jrockit/vm/Threads.sleep(I)V(Native Method)
at jrockit/vm/Locks.waitForThinRelease(Locks.java:1208)[optimized]
at jrockit/vm/Locks.monitorEnterSecondStageHard(Locks.java:1341)
[optimized]
at jrockit/vm/Locks.monitorEnterSecondStage(Locks.java:1258)
[optimized]
at jrockit/vm/Locks.monitorEnter(Locks.java:2455)[optimized]
at org/apache/qpid/client/
AMQConnection.doClose(AMQConnection.java:1002)
^-- Holding lock: java/lang/obj...@0xf1ea038[recursive]
at org/apache/qpid/client/
AMQConnection.doClose(AMQConnection.java:997)
^-- Holding lock: java/lang/obj...@0xf1e9d58[thin lock]
^-- Holding lock: java/lang/obj...@0xf1ea038[thin lock]
at org/apache/qpid/client/AMQConnection.close(AMQConnection.java:
981)
at org/apache/qpid/client/AMQConnection.close(AMQConnection.java:
972)
at org/apache/qpid/client/AMQConnection.close(AMQConnection.java:
967)
at org/springframework/jms/connection/
SingleConnectionFactory.closeConnection(SingleConnectionFactory.java:
427)
at org/springframework/jms/connection/
SingleConnectionFactory.resetConnection(SingleConnectionFactory.java:
322)
^-- Holding lock: java/lang/obj...@0x13389dd8[thin lock]
"hierarchyBuildCacheListenerContainer1-1" id=262140 idx=0x34c
tid=13555 prio=5 alive, in native, blocked
-- Blocked trying to get lock: java/lang/obj...@0xf1e9d58[thin
lock]
at jrockit/vm/Threads.sleep(I)V(Native Method)
at jrockit/vm/Locks.waitForThinRelease(Locks.java:1208)[optimized]
at jrockit/vm/Locks.monitorEnterSecondStageHard(Locks.java:1341)
[optimized]
at jrockit/vm/Locks.monitorEnterSecondStage(Locks.java:1258)
[optimized]
at jrockit/vm/Locks.monitorEnter(Locks.java:2455)[optimized]
at org/apache/qpid/client/AMQSession.close(AMQSession.java:642)
^-- Holding lock: java/lang/obj...@0xf1ea030[thin lock]
at org/apache/qpid/client/AMQSession.close(AMQSession.java:489)
at org/springframework/jms/connection/CachingConnectionFactory
$
CachedSessionInvocationHandler
.physicalClose(CachingConnectionFactory.java:425)
at org/springframework/jms/connection/CachingConnectionFactory
$CachedSessionInvocationHandler.invoke(CachingConnectionFactory.java:
305)
at $Proxy132.close()V(Unknown Source)
at org/springframework/jms/support/
JmsUtils.closeSession(JmsUtils.java:108)
at org/springframework/jms/listener/
DefaultMessageListenerContainer
$
AsyncMessageListenerInvoker
.clearResources(DefaultMessageListenerContainer.java:1020)
^-- Holding lock: java/lang/obj...@0x13389a68[thin lock]
at org/springframework/jms/listener/
DefaultMessageListenerContainer
$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:
927)
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]