Uploaded image for project: 'ActiveMQ Classic'
  1. ActiveMQ Classic
  2. AMQ-5260

Cross talk over duplex network connection can lead to blocking (alternative take)

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Abandoned
    • 5.9.0, 5.10.0
    • None
    • None
    • None

    Description

      Pretty the same description with respect to AMQ-4328.


      Stacktraces:

      Stacktrace no.1:

      Name: ActiveMQ NIO Worker 12
      State: BLOCKED on java.net.URI@1bae2b28 owned by: ActiveMQ Transport: tcp:///10.0.1.219:61616@57789
      Total blocked: 2  Total waited: 67
      
      Stack trace: 
       org.apache.activemq.network.DemandForwardingBridgeSupport.serviceRemoteConsumerAdvisory(DemandForwardingBridgeSupport.java:714)
      org.apache.activemq.network.DemandForwardingBridgeSupport.serviceRemoteCommand(DemandForwardingBridgeSupport.java:581)
      org.apache.activemq.network.DemandForwardingBridgeSupport$3.onCommand(DemandForwardingBridgeSupport.java:191)
      org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
      org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
      org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
      org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:270)
      org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
      org.apache.activemq.transport.nio.NIOTransport.serviceRead(NIOTransport.java:138)
      org.apache.activemq.transport.nio.NIOTransport$1.onSelect(NIOTransport.java:69)
      org.apache.activemq.transport.nio.SelectorSelection.onSelect(SelectorSelection.java:94)
      org.apache.activemq.transport.nio.SelectorWorker$1.run(SelectorWorker.java:119)
      java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
      java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      java.lang.Thread.run(Unknown Source)
      

      stack trace no.2

      Name: ActiveMQ Transport: tcp:///10.0.1.219:61616@57789
      State: WAITING on java.util.concurrent.locks.ReentrantLock$NonfairSync@3cdbfa3e owned by: ActiveMQ BrokerService[master2] Task-4
      Total blocked: 19  Total waited: 3
      
      Stack trace: 
       sun.misc.Unsafe.park(Native Method)
      java.util.concurrent.locks.LockSupport.park(Unknown Source)
      java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(Unknown Source)
      java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(Unknown Source)
      java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(Unknown Source)
      java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(Unknown Source)
      java.util.concurrent.locks.ReentrantLock.lock(Unknown Source)
      org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:66)
      org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:60)
      org.apache.activemq.broker.TransportConnection.dispatch(TransportConnection.java:1339)
      org.apache.activemq.broker.TransportConnection.processDispatch(TransportConnection.java:858)
      org.apache.activemq.broker.TransportConnection.dispatchSync(TransportConnection.java:818)
      org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:151)
      org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
      org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
      org.apache.activemq.transport.vm.VMTransport.doDispatch(VMTransport.java:138)
      org.apache.activemq.transport.vm.VMTransport.dispatch(VMTransport.java:127)
         - locked java.util.concurrent.atomic.AtomicBoolean@689389da
      org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:104)
      org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:68)
      org.apache.activemq.transport.ResponseCorrelator.asyncRequest(ResponseCorrelator.java:81)
      org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:86)
      org.apache.activemq.network.DemandForwardingBridgeSupport.addSubscription(DemandForwardingBridgeSupport.java:856)
      org.apache.activemq.network.DemandForwardingBridgeSupport.addConsumerInfo(DemandForwardingBridgeSupport.java:1128)
      org.apache.activemq.network.DemandForwardingBridgeSupport.serviceRemoteConsumerAdvisory(DemandForwardingBridgeSupport.java:714)
         - locked java.net.URI@1bae2b28
      org.apache.activemq.network.DemandForwardingBridgeSupport.serviceRemoteCommand(DemandForwardingBridgeSupport.java:581)
      org.apache.activemq.network.DemandForwardingBridgeSupport$3.onCommand(DemandForwardingBridgeSupport.java:191)
      org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
      org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
      org.apache.activemq.transport.failover.FailoverTransport$3.onCommand(FailoverTransport.java:196)
      org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
      org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:270)
      org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
      org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:214)
      org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:196)
      java.lang.Thread.run(Unknown Source)
      

      stack trace no.3

      Name: ActiveMQ BrokerService[master2] Task-4
      State: WAITING on java.util.concurrent.locks.ReentrantLock$NonfairSync@717bb9c owned by: ActiveMQ Transport: tcp:///10.0.1.219:61616@57789
      Total blocked: 19  Total waited: 117
      
      Stack trace: 
       sun.misc.Unsafe.park(Native Method)
      java.util.concurrent.locks.LockSupport.park(Unknown Source)
      java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(Unknown Source)
      java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(Unknown Source)
      java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(Unknown Source)
      java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(Unknown Source)
      java.util.concurrent.locks.ReentrantLock.lock(Unknown Source)
      org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:66)
      org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:60)
      org.apache.activemq.network.DemandForwardingBridgeSupport.serviceLocalCommand(DemandForwardingBridgeSupport.java:921)
      org.apache.activemq.network.DemandForwardingBridgeSupport$2.onCommand(DemandForwardingBridgeSupport.java:173)
      org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
      org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
      org.apache.activemq.transport.vm.VMTransport.doDispatch(VMTransport.java:138)
      org.apache.activemq.transport.vm.VMTransport.dispatch(VMTransport.java:127)
         - locked java.util.concurrent.atomic.AtomicBoolean@453bb109
      org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:104)
      org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:68)
      org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:60)
      org.apache.activemq.broker.TransportConnection.dispatch(TransportConnection.java:1339)
      org.apache.activemq.broker.TransportConnection.processDispatch(TransportConnection.java:858)
      org.apache.activemq.broker.TransportConnection.iterate(TransportConnection.java:904)
      org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:129)
      org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:47)
      java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
      java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      java.lang.Thread.run(Unknown Source)
      

      Attachments

        1. AMQ_5260_2.patch
          3 kB
          matteo rulli
        2. AMQ_5260_3.patch
          0.6 kB
          matteo rulli
        3. AMQ_5260.patch
          4 kB
          matteo rulli
        4. AMQ5260AdvancedTest.java
          48 kB
          matteo rulli
        5. deadlock.jpg
          197 kB
          matteo rulli
        6. debug.jpg
          218 kB
          matteo rulli

        Issue Links

          Activity

            People

              Unassigned Unassigned
              matteor matteo rulli
              Votes:
              1 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: