qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From DraCzech <dracz...@gmail.com>
Subject Qpid JMS client JmsConnection.close() hangs
Date Mon, 21 Nov 2016 10:22:20 GMT
Hi, I'm currently using ActiveMQ 5.14.1 embedded broker connected from
several local queues to MS Azure IoT Hub using JmsConnectionFactory as
foreignConnectionFactory in SimpleJmsQueueConnector. (Using dependency to
qpid jms client 0.11.1) Each queue is connected to the server via its
respective bridge and everything seems to be working fine until I want to
shut down the connection.

If I have network connection, everything is stopped in few seconds. However
if I lose network connection and call SimpleJmsQueueConnector.stop() method,
it hangs on its foreignConnection.close() (JmsConnection). It remains stuck
indefinitely and I have to interrupt the thread responsible for closing of
the connection. Which unfortunately leads to more problems later as there
are remains of the connection in the system.

*Part of the thread dump:*
2016-11-16 09:35:13.275227  	- parking to wait for  <0x42e6bc08> (a
java.util.concurrent.CountDownLatch$Sync)
2016-11-16 09:35:13.275654  	at
java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
2016-11-16 09:35:13.276143  	at
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834)
2016-11-16 09:35:13.276631  	at
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:994)
2016-11-16 09:35:13.277058  	at
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1303)
2016-11-16 09:35:13.277577  	at
java.util.concurrent.CountDownLatch.await(CountDownLatch.java:236)
2016-11-16 09:35:13.278676  	at
org.apache.qpid.jms.provider.ProviderFuture.sync(ProviderFuture.java:97)
2016-11-16 09:35:13.279103  	at
org.apache.qpid.jms.JmsConnection.close(JmsConnection.java:187)
2016-11-16 09:35:13.279622  	- locked <0x487b1cb8> (a
org.apache.qpid.jms.JmsQueueConnection)
2016-11-16 09:35:13.280018  	at
org.apache.activemq.network.jms.JmsConnector.stop(JmsConnector.java:179)

I believe this problem is tied to the JMS specification and is caused by
MessageConsumer.receive() waiting on some pending receive. I've found some
description of the same or similar issue online, but no specific solution
for it. From what I've read I think the problem might be related to:

http://qpid.2158936.n2.nabble.com/Qpid-JMS-0-9-0-receive-hanging-issue-relates-to-Artemis-works-on-ActiveMQ-td7642585.html
<http://qpid.2158936.n2.nabble.com/Qpid-JMS-0-9-0-receive-hanging-issue-relates-to-Artemis-works-on-ActiveMQ-td7642585.html>
 

and

https://issues.apache.org/jira/browse/QPIDJMS-221
<https://issues.apache.org/jira/browse/QPIDJMS-221>  

Could you please tell me if it's possible to set up my messaging in such a
way which prevents this kind of freeze? How should I defend against this
kind of problems?
Thanks!



--
View this message in context: http://qpid.2158936.n2.nabble.com/Qpid-JMS-client-JmsConnection-close-hangs-tp7654565.html
Sent from the Apache Qpid users mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org


Mime
View raw message