Details
Description
While attempting to shutdown a JVM with an embedded broker listening on a stomp+ssl port, I ran into the following deadlock:
Found one Java-level deadlock: ============================= "ActiveMQ Transport: ssl:///127.0.0.1:43713": waiting to lock monitor 0x8d587f70 (object 0x9b8362b0, a java.lang.Object), which is held by "BrokerService" "BrokerService": waiting to lock monitor 0x08901314 (object 0x9b8527b0, a java.lang.Object), which is held by "ActiveMQ Transport: ssl:///127.0.0.1:43713" Java stack information for the threads listed above: =================================================== "ActiveMQ Transport: ssl:///127.0.0.1:43713": at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:40) - waiting to lock <0x9b8362b0> (a java.lang.Object) at org.apache.activemq.broker.TransportConnection.dispatch(TransportConnection.java:1188) at org.apache.activemq.broker.TransportConnection.processDispatch(TransportConnection.java:776) at org.apache.activemq.broker.TransportConnection.dispatchSync(TransportConnection.java:735) at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:182) at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68) at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:206) - locked <0x9b852bb0> (a org.apache.activemq.transport.InactivityMonitor$1) at org.apache.activemq.transport.stomp.StompTransportFilter.sendToActiveMQ(StompTransportFilter.java:80) - locked <0x9b8527b0> (a java.lang.Object) at org.apache.activemq.transport.stomp.ProtocolConverter.sendToActiveMQ(ProtocolConverter.java:134) at org.apache.activemq.transport.stomp.ProtocolConverter.onStompUnsubscribe(ProtocolConverter.java:424) at org.apache.activemq.transport.stomp.ProtocolConverter.onStompCommad(ProtocolConverter.java:184) at org.apache.activemq.transport.stomp.StompTransportFilter.onCommand(StompTransportFilter.java:70) at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84) at org.apache.activemq.transport.tcp.SslTransport.doConsume(SslTransport.java:104) at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:196) at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:183) at java.lang.Thread.run(Thread.java:619) "BrokerService": at org.apache.activemq.transport.stomp.StompTransportFilter.sendToActiveMQ(StompTransportFilter.java:80) - waiting to lock <0x9b8527b0> (a java.lang.Object) at org.apache.activemq.transport.stomp.StompSubscription.onMessageDispatch(StompSubscription.java:71) at org.apache.activemq.transport.stomp.ProtocolConverter.onActiveMQCommad(ProtocolConverter.java:550) at org.apache.activemq.transport.stomp.StompTransportFilter.oneway(StompTransportFilter.java:59) at org.apache.activemq.transport.InactivityMonitor.oneway(InactivityMonitor.java:233) - locked <0x9b857d50> (a java.util.concurrent.atomic.AtomicBoolean) at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:40) - locked <0x9b8362b0> (a java.lang.Object) at org.apache.activemq.broker.TransportConnection.dispatch(TransportConnection.java:1188) at org.apache.activemq.broker.TransportConnection.processDispatch(TransportConnection.java:776) at org.apache.activemq.broker.TransportConnection.iterate(TransportConnection.java:813) at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122) at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:619) Found 1 deadlock.