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]

Reply via email to