activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Arthur Naseef (JIRA)" <>
Subject [jira] [Created] (AMQ-3277) Deadlock with static:(failover:(...)) configuration
Date Fri, 08 Apr 2011 21:05:05 GMT
Deadlock with static:(failover:(...)) configuration

                 Key: AMQ-3277
             Project: ActiveMQ
          Issue Type: Bug
          Components: Broker
    Affects Versions: 5.4.2
         Environment: 5.4.2 with back-ported patches for AMQ-3176, AMQ-2736, AMQ-3124, AMQ-3125,

Two brokers, each with a single duplex network connection to the other, using static:(failover:(first,second))
URI format.
            Reporter: Arthur Naseef

Using failover transports with static transports to create a network of brokers with H/A pairs,
the failovers lead to deadlocks.

This appears related to AMQ-3176, but the patch for that problem is included in our 5.4.2

                <networkConnector name="nw1_from_nw2" uri="static:(failover:(tcp://,tcp://"
                                  duplex="true" conduitSubscriptions="false" dynamicOnly="true"
                                  networkTTL="7" suppressDuplicateQueueSubscriptions="true"


The deadlock occurs after stopping and restarting each broker once.  Here's the steps:

    - start broker1
    - start broker2
    * test connectivity
    - sthudown broker1
    - restart broker1
    * test connectivity
    - shutdown broker2
    - restart broker2
    * test connectivity

Here is the deadlock information from the JVM:

Java stack information for the threads listed above:
"StartRemotelBridge: localBroker=vm://peer-nw2#2":
        at org.apache.activemq.transport.failover.FailoverTransport.oneway(
        - waiting to lock <0x00002aaac2df83c8> (a java.lang.Object)
        at org.apache.activemq.transport.MutexTransport.oneway(
        - locked <0x00002aaac2e050f8> (a java.lang.Object)
        at org.apache.activemq.transport.ResponseCorrelator.oneway(
        - locked <0x00002aaac2df7c50> (a
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
        at java.util.concurrent.ThreadPoolExecutor$
"ActiveMQ Failover Worker: 169776139":
        - waiting to lock <0x00002aaac2df7c50> (a org.apache.activemq.networFound one
Java-level deadlock:
"StartRemotelBridge: localBroker=vm://peer-nw2#2":
  waiting to lock monitor 0x0000000044796938 (object 0x00002aaac2df83c8, a java.lang.Object),
  which is held by "ActiveMQ Failover Worker: 169776139"
"ActiveMQ Failover Worker: 169776139":
  waiting to lock monitor 0x00002aaac470f0b0 (object 0x00002aaac2df7c50, a,
  which is held by k.DurableConduitBridge)
        at org.apache.activemq.transport.TransportFilter.transportResumed(
        at org.apache.activemq.transport.TransportFilter.transportResumed(
        at org.apache.activemq.transport.failover.FailoverTransport.doReconnect(
        - locked <0x00002aaac2df83c8> (a java.lang.Object)
        at org.apache.activemq.transport.failover.FailoverTransport$2.iterate(
        - locked <0x00002aaac2df83d8> (a java.lang.Object)
        at org.apache.activemq.thread.DedicatedTaskRunner.runTask(
        at org.apache.activemq.thread.DedicatedTaskRunner$

Found 1 deadlock.

This message is automatically generated by JIRA.
For more information on JIRA, see:

View raw message