When going through logs I also found this piece of thread dump. Which shows that my cleaning thread is waiting for a lock held by ActiveMQ thread. A state which is definitely not desired, but I'm not sure if can be prevented completely...
2016-11-24 17:46:10.016523 "JMS Connector cleaner" daemon prio=10 tid=0x0005bf70 nid=0x9d7 waiting for monitor entry [0x555bb000] 2016-11-24 17:46:10.016829 java.lang.Thread.State: BLOCKED (on object monitor) 2016-11-24 17:46:10.017286 at org.apache.activemq.FifoMessageDispatchChannel.stop(FifoMessageDispatchChannel.java:124) 2016-11-24 17:46:10.018599 - waiting to lock <0x489bcd68> (a java.lang.Object) 2016-11-24 17:46:10.018996 at org.apache.activemq.ActiveMQMessageConsumer.stop(ActiveMQMessageConsumer.java:1551) 2016-11-24 17:46:10.019423 at org.apache.activemq.ActiveMQSession.stop(ActiveMQSession.java:1856) 2016-11-24 17:46:10.019942 at org.apache.activemq.ActiveMQConnection.doStop(ActiveMQConnection.java:586) 2016-11-24 17:46:10.020338 - locked <0x4832e608> (a java.util.concurrent.CopyOnWriteArrayList) 2016-11-24 17:46:10.020827 at org.apache.activemq.ActiveMQConnection.close(ActiveMQConnection.java:642) 2016-11-24 17:46:10.021193 at org.apache.activemq.network.jms.JmsConnector.stop(JmsConnector.java:186) 2016-11-24 17:46:10.022109 at com.openmatics.box.iotdatabroker.internal.connection.ServerConnector$JMSConnectorCleaner.run(ServerConnector.java:645) 2016-11-24 17:46:10.022536 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 2016-11-24 17:46:10.023024 at java.util.concurrent.FutureTask.run(FutureTask.java:262) 2016-11-24 17:46:10.024306 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 2016-11-24 17:46:10.024764 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 2016-11-24 17:46:10.025313 at java.lang.Thread.run(Thread.java:745) 2016-11-24 17:46:10.038101 "ActiveMQ Session Task-17" prio=10 tid=0x00271920 nid=0x995 waiting on condition [0x56072000] 2016-11-24 17:46:10.038681 java.lang.Thread.State: WAITING (parking) 2016-11-24 17:46:10.039749 at sun.misc.Unsafe.park(Native Method) 2016-11-24 17:46:10.040024 - parking to wait for <0x44080548> (a java.util.concurrent.CountDownLatch$Sync) 2016-11-24 17:46:10.040238 at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186) 2016-11-24 17:46:10.040421 at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834) 2016-11-24 17:46:10.040756 at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:994) 2016-11-24 17:46:10.040970 at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1303) 2016-11-24 17:46:10.043106 at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:236) 2016-11-24 17:46:10.043351 at org.apache.qpid.jms.provider.ProviderFuture.sync(ProviderFuture.java:97) 2016-11-24 17:46:10.043625 at org.apache.qpid.jms.JmsConnection.send(JmsConnection.java:630) 2016-11-24 17:46:10.043839 at org.apache.qpid.jms.JmsConnection.send(JmsConnection.java:619) 2016-11-24 17:46:10.044144 at org.apache.qpid.jms.JmsNoTxTransactionContext.send(JmsNoTxTransactionContext.java:37) 2016-11-24 17:46:10.044358 at org.apache.qpid.jms.JmsSession.send(JmsSession.java:717) 2016-11-24 17:46:10.044571 at org.apache.qpid.jms.JmsSession.send(JmsSession.java:634) 2016-11-24 17:46:10.044785 at org.apache.qpid.jms.JmsMessageProducer.sendMessage(JmsMessageProducer.java:185) 2016-11-24 17:46:10.045121 at org.apache.qpid.jms.JmsMessageProducer.send(JmsMessageProducer.java:177) 2016-11-24 17:46:10.045365 at org.apache.qpid.jms.JmsMessageProducer.send(JmsMessageProducer.java:166) 2016-11-24 17:46:10.045609 at org.apache.qpid.jms.JmsQueueSender.send(JmsQueueSender.java:50) 2016-11-24 17:46:10.046403 at org.apache.activemq.network.jms.QueueBridge.sendMessage(QueueBridge.java:83) 2016-11-24 17:46:10.048692 - locked <0x48366908> (a org.apache.activemq.network.jms.OutboundQueueBridge) 2016-11-24 17:46:10.048936 at org.apache.activemq.network.jms.DestinationBridge.onMessage(DestinationBridge.java:135) 2016-11-24 17:46:10.049149 at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1401) 2016-11-24 17:46:10.049363 - locked <0x489bcd68> (a java.lang.Object) 2016-11-24 17:46:10.049668 at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:131) 2016-11-24 17:46:10.049882 at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:202) 2016-11-24 17:46:10.050126 at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:133) 2016-11-24 17:46:10.050340 at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48) 2016-11-24 17:46:10.050553 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 2016-11-24 17:46:10.050859 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 2016-11-24 17:46:10.051988 at java.lang.Thread.run(Thread.java:745) -- View this message in context: http://qpid.2158936.n2.nabble.com/Qpid-JMS-client-JmsConnection-close-hangs-tp7654565p7654835.html Sent from the Apache Qpid users mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
