-
Type:
Bug
-
Status: Resolved
-
Priority:
Major
-
Resolution: Deferred
-
Affects Version/s: JBoss A-MQ 6.2.1
-
Fix Version/s: None
-
Component/s: broker
-
Labels:None
-
Environment:
- issues reported on A-MQ 6.2.1
the following deadlock was reported in the broker thread dump| Java stack information for the threads listed above:|
| =================================================== |
| "ActiveMQ BrokerService[amq] Task-44": |
| at sun.misc.Unsafe.park(Native Method) |
| - parking to wait for <0x000000009ba00548> (a java.util.concurrent.locks.ReentrantLock$NonfairSync) |
| at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) |
| at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836) |
| at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870) |
| at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199) |
| at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:209) |
| at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:285) |
| at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:66) |
| at org.apache.activemq.broker.TransportConnection.dispatch(TransportConnection.java:1432) |
| at org.apache.activemq.broker.TransportConnection.processDispatch(TransportConnection.java:946) |
| at org.apache.activemq.broker.TransportConnection.dispatchSync(TransportConnection.java:902) |
| at org.apache.activemq.broker.TransportConnection.dispatchAsync(TransportConnection.java:912) |
| at org.apache.activemq.broker.TransportConnection.start(TransportConnection.java:1045) |
| - locked <0x000000009ba005d0> (a org.apache.activemq.broker.TransportConnection) |
| at org.apache.activemq.broker.TransportConnector$1$1.run(TransportConnector.java:218) |
| at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) |
| at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) |
| at java.lang.Thread.run(Thread.java:745) |
| "ActiveMQ NIO Worker 31": |
| at org.apache.activemq.broker.TransportConnection.registerConnectionState(TransportConnection.java:1584) |
| - waiting to lock <0x000000009ba005d0> (a org.apache.activemq.broker.TransportConnection) |
| at org.apache.activemq.broker.TransportConnection.processAddConnection(TransportConnection.java:789) |
| at org.apache.activemq.command.ConnectionInfo.visit(ConnectionInfo.java:139) |
| at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:338) |
| at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:188) |
| at org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:45) |
| at org.apache.activemq.transport.mqtt.MQTTInactivityMonitor.onCommand(MQTTInactivityMonitor.java:162) |
| at org.apache.activemq.transport.mqtt.MQTTTransportFilter.sendToActiveMQ(MQTTTransportFilter.java:107) |
| at org.apache.activemq.transport.mqtt.MQTTProtocolConverter.sendToActiveMQ(MQTTProtocolConverter.java:178) |
| at org.apache.activemq.transport.mqtt.MQTTProtocolConverter.onMQTTConnect(MQTTProtocolConverter.java:282) |
| at org.apache.activemq.transport.mqtt.MQTTProtocolConverter.onMQTTCommand(MQTTProtocolConverter.java:201) |
| at org.apache.activemq.transport.mqtt.MQTTTransportFilter.onCommand(MQTTTransportFilter.java:95) |
| at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83) |
| at org.apache.activemq.transport.mqtt.MQTTCodec$1.onFrame(MQTTCodec.java:65) |
| at org.apache.activemq.transport.mqtt.MQTTCodec.processCommand(MQTTCodec.java:90) |
| at org.apache.activemq.transport.mqtt.MQTTCodec.access$400(MQTTCodec.java:26) |
| at org.apache.activemq.transport.mqtt.MQTTCodec$4.parse(MQTTCodec.java:213) |
| at org.apache.activemq.transport.mqtt.MQTTCodec$3.parse(MQTTCodec.java:179) |
| at org.apache.activemq.transport.mqtt.MQTTCodec$2.parse(MQTTCodec.java:138) |
| at org.apache.activemq.transport.mqtt.MQTTCodec.parse(MQTTCodec.java:76) |
| at org.apache.activemq.transport.mqtt.MQTTNIOTransport.serviceRead(MQTTNIOTransport.java:108) |
| at org.apache.activemq.transport.mqtt.MQTTNIOTransport.access$000(MQTTNIOTransport.java:43) |
| at org.apache.activemq.transport.mqtt.MQTTNIOTransport$1.onSelect(MQTTNIOTransport.java:68) |
| at org.apache.activemq.transport.nio.SelectorSelection.onSelect(SelectorSelection.java:97) |
| at org.apache.activemq.transport.nio.SelectorWorker$1.run(SelectorWorker.java:119) |
| at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) |
| at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) |
| at java.lang.Thread.run(Thread.java:745) |
| ... |
Engineering initial analysis suggests this could occur when using disableAsyncDispatch="true" on the transport connector.