Michael Yara created AMQ-4935: --------------------------------- Summary: Deadlock caused by Re-entrant lock with no locking thread Key: AMQ-4935 URL: https://issues.apache.org/jira/browse/AMQ-4935 Project: ActiveMQ Issue Type: Bug Components: activemq-pool Affects Versions: 5.9.0 Environment: Oracle JRE 1.7.0 update 45 Reporter: Michael Yara
We have a distributed application that uses ActiveMQ for communication between nodes. We are currently using ActiveMQ 5.9.0 running with Oracle JRE 1.7.0 update 45. We are seeing some strange deadlock behavior in the ActiveMQ ThreadPoolExecutor when trying to serialize instances of ConcurrentHashMap. The thread dump can be seen at the following link: http://pastebin.com/wmNxSF4p We can see that there are two threads that are blocked waiting for a lock on some of the segments in a ConcurrentHashMap yet the thread dump does not indicate any threads that currently hold a lock on those objects. This lock does not occur all the time and can take around 5-10 messages before the deadlock occurs. I have been able to recreate this issue on two different physical machines. Our test environment that generated this thread dump is as follows. Node A is the instance that thread dump was taken from. For testing both nodes are on the same physical machine. Node A: * In its own JVM instance. * Runs an embedded ActiveMQ broker. * Performs communication via vm transport and sends ObjectMessages via a TopicConnection. * Has copyMessageOnSend=false * Has ObjectMessageSerializationDefered=true Node B: * In its own JVM instance. * Connects to Node A's broker via tcp transport. * Sends BytesMessages serialized with Kryo and sent via a TopicConnection. * Has copyMessageOnSend=false * Has ObjectMessageSerializationDefered=false Both nodes are set up to detect the type of incoming messages and deserialize them appropriately with kryo if it receives a BytesMessage or default serialization if it receives an ObjectMessage (handled by ActiveMQ). The only thing I have found resembling this issue is the following link. I am no sure if it is related to this exact problem or not. http://appcrawler.com/wordpress/2013/05/06/one-way-to-tell-if-a-thread-pool-is-hung/ -- This message was sent by Atlassian JIRA (v6.1.4#6159)