You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Vadim Geshel (JIRA)" <ji...@apache.org> on 2007/11/14 03:33:26 UTC

[jira] Created: (AMQ-1491) bug in TcpTransport.run() and stop() holds dead connections and prevents reconnects

bug in TcpTransport.run() and stop() holds dead connections and prevents reconnects
-----------------------------------------------------------------------------------

                 Key: AMQ-1491
                 URL: https://issues.apache.org/activemq/browse/AMQ-1491
             Project: ActiveMQ
          Issue Type: Bug
          Components: Broker
    Affects Versions: 5.0.0
            Reporter: Vadim Geshel


TcpTransport.stop() await()s on a countDownLatch that is counted down in TcpTransport.run(). When stop() is called in in the dynamic scope of run(), the countDown() will never happen. Example stack:

"ActiveMQ Transport: tcp://localhost/127.0.0.1:62002" prio=10 tid=0x0be46c00 nid=0x2dbc waiting on condition [0x0125c000..0x0125ce50]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x7f352dd0> (a java.util.concurrent.CountDownLatch$Sync)        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:712)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:870)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1182)
        at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:207)
        at org.apache.activemq.transport.tcp.TcpTransport.stop(TcpTransport.java:440)
        at org.apache.activemq.transport.InactivityMonitor.stop(InactivityMonitor.java:66)
        at org.apache.activemq.transport.TransportFilter.stop(TransportFilter.java:63)
        at org.apache.activemq.transport.WireFormatNegotiator.stop(WireFormatNegotiator.java:78)
        at org.apache.activemq.transport.TransportFilter.stop(TransportFilter.java:63)
        at org.apache.activemq.transport.TransportFilter.stop(TransportFilter.java:63)
        at org.apache.activemq.util.ServiceStopper.stop(ServiceStopper.java:41)        at org.apache.activemq.network.DemandForwardingBridgeSupport.stop(DemandForwardingBridgeSupport.java:340)        at org.apache.activemq.util.ServiceSupport.dispose(ServiceSupport.java:40)
        at org.apache.activemq.network.DiscoveryNetworkConnector.onServiceRemove(DiscoveryNetworkConnector.java:132)
        at org.apache.activemq.transport.discovery.simple.SimpleDiscoveryAgent.serviceFailed(SimpleDiscoveryAgent.java:104)
        at org.apache.activemq.network.DiscoveryNetworkConnector$1.bridgeFailed(DiscoveryNetworkConnector.java:179)
        at org.apache.activemq.network.DemandForwardingBridgeSupport.fireBridgeFailed(DemandForwardingBridgeSupport.java:909)
        at org.apache.activemq.network.DemandForwardingBridgeSupport.serviceRemoteException(DemandForwardingBridgeSupport.java:371)
        at org.apache.activemq.network.DemandForwardingBridgeSupport.serviceRemoteCommand(DemandForwardingBridgeSupport.java:395)
        at org.apache.activemq.network.DemandForwardingBridgeSupport$2.onCommand(DemandForwardingBridgeSupport.java:149)
        at org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:100)
        at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:67)
        at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:134)
        at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:126)
        - locked <0x7f3530b0> (a org.apache.activemq.transport.InactivityMonitor$1)
        at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
        at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:183)
        at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:170)
        at java.lang.Thread.run(Thread.java:619)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (AMQ-1491) bug in TcpTransport.run() and stop() holds dead connections and prevents reconnects

Posted by "Rob Davies (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-1491?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rob Davies updated AMQ-1491:
----------------------------

    Fix Version/s: 5.0.0

> bug in TcpTransport.run() and stop() holds dead connections and prevents reconnects
> -----------------------------------------------------------------------------------
>
>                 Key: AMQ-1491
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1491
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.0.0
>            Reporter: Vadim Geshel
>            Assignee: Rob Davies
>             Fix For: 5.0.0
>
>
> TcpTransport.stop() await()s on a countDownLatch that is counted down in TcpTransport.run(). When stop() is called in in the dynamic scope of run(), the countDown() will never happen. Example stack:
> "ActiveMQ Transport: tcp://localhost/127.0.0.1:62002" prio=10 tid=0x0be46c00 nid=0x2dbc waiting on condition [0x0125c000..0x0125ce50]
>    java.lang.Thread.State: WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x7f352dd0> (a java.util.concurrent.CountDownLatch$Sync)        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:712)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:870)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1182)
>         at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:207)
>         at org.apache.activemq.transport.tcp.TcpTransport.stop(TcpTransport.java:440)
>         at org.apache.activemq.transport.InactivityMonitor.stop(InactivityMonitor.java:66)
>         at org.apache.activemq.transport.TransportFilter.stop(TransportFilter.java:63)
>         at org.apache.activemq.transport.WireFormatNegotiator.stop(WireFormatNegotiator.java:78)
>         at org.apache.activemq.transport.TransportFilter.stop(TransportFilter.java:63)
>         at org.apache.activemq.transport.TransportFilter.stop(TransportFilter.java:63)
>         at org.apache.activemq.util.ServiceStopper.stop(ServiceStopper.java:41)        at org.apache.activemq.network.DemandForwardingBridgeSupport.stop(DemandForwardingBridgeSupport.java:340)        at org.apache.activemq.util.ServiceSupport.dispose(ServiceSupport.java:40)
>         at org.apache.activemq.network.DiscoveryNetworkConnector.onServiceRemove(DiscoveryNetworkConnector.java:132)
>         at org.apache.activemq.transport.discovery.simple.SimpleDiscoveryAgent.serviceFailed(SimpleDiscoveryAgent.java:104)
>         at org.apache.activemq.network.DiscoveryNetworkConnector$1.bridgeFailed(DiscoveryNetworkConnector.java:179)
>         at org.apache.activemq.network.DemandForwardingBridgeSupport.fireBridgeFailed(DemandForwardingBridgeSupport.java:909)
>         at org.apache.activemq.network.DemandForwardingBridgeSupport.serviceRemoteException(DemandForwardingBridgeSupport.java:371)
>         at org.apache.activemq.network.DemandForwardingBridgeSupport.serviceRemoteCommand(DemandForwardingBridgeSupport.java:395)
>         at org.apache.activemq.network.DemandForwardingBridgeSupport$2.onCommand(DemandForwardingBridgeSupport.java:149)
>         at org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:100)
>         at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:67)
>         at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:134)
>         at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:126)
>         - locked <0x7f3530b0> (a org.apache.activemq.transport.InactivityMonitor$1)
>         at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
>         at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:183)
>         at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:170)
>         at java.lang.Thread.run(Thread.java:619)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (AMQ-1491) bug in TcpTransport.run() and stop() holds dead connections and prevents reconnects

Posted by "Rob Davies (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-1491?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rob Davies resolved AMQ-1491.
-----------------------------

    Resolution: Fixed

Fixed by svn revision 597582

> bug in TcpTransport.run() and stop() holds dead connections and prevents reconnects
> -----------------------------------------------------------------------------------
>
>                 Key: AMQ-1491
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1491
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.0.0
>            Reporter: Vadim Geshel
>            Assignee: Rob Davies
>
> TcpTransport.stop() await()s on a countDownLatch that is counted down in TcpTransport.run(). When stop() is called in in the dynamic scope of run(), the countDown() will never happen. Example stack:
> "ActiveMQ Transport: tcp://localhost/127.0.0.1:62002" prio=10 tid=0x0be46c00 nid=0x2dbc waiting on condition [0x0125c000..0x0125ce50]
>    java.lang.Thread.State: WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x7f352dd0> (a java.util.concurrent.CountDownLatch$Sync)        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:712)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:870)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1182)
>         at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:207)
>         at org.apache.activemq.transport.tcp.TcpTransport.stop(TcpTransport.java:440)
>         at org.apache.activemq.transport.InactivityMonitor.stop(InactivityMonitor.java:66)
>         at org.apache.activemq.transport.TransportFilter.stop(TransportFilter.java:63)
>         at org.apache.activemq.transport.WireFormatNegotiator.stop(WireFormatNegotiator.java:78)
>         at org.apache.activemq.transport.TransportFilter.stop(TransportFilter.java:63)
>         at org.apache.activemq.transport.TransportFilter.stop(TransportFilter.java:63)
>         at org.apache.activemq.util.ServiceStopper.stop(ServiceStopper.java:41)        at org.apache.activemq.network.DemandForwardingBridgeSupport.stop(DemandForwardingBridgeSupport.java:340)        at org.apache.activemq.util.ServiceSupport.dispose(ServiceSupport.java:40)
>         at org.apache.activemq.network.DiscoveryNetworkConnector.onServiceRemove(DiscoveryNetworkConnector.java:132)
>         at org.apache.activemq.transport.discovery.simple.SimpleDiscoveryAgent.serviceFailed(SimpleDiscoveryAgent.java:104)
>         at org.apache.activemq.network.DiscoveryNetworkConnector$1.bridgeFailed(DiscoveryNetworkConnector.java:179)
>         at org.apache.activemq.network.DemandForwardingBridgeSupport.fireBridgeFailed(DemandForwardingBridgeSupport.java:909)
>         at org.apache.activemq.network.DemandForwardingBridgeSupport.serviceRemoteException(DemandForwardingBridgeSupport.java:371)
>         at org.apache.activemq.network.DemandForwardingBridgeSupport.serviceRemoteCommand(DemandForwardingBridgeSupport.java:395)
>         at org.apache.activemq.network.DemandForwardingBridgeSupport$2.onCommand(DemandForwardingBridgeSupport.java:149)
>         at org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:100)
>         at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:67)
>         at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:134)
>         at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:126)
>         - locked <0x7f3530b0> (a org.apache.activemq.transport.InactivityMonitor$1)
>         at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
>         at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:183)
>         at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:170)
>         at java.lang.Thread.run(Thread.java:619)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Assigned: (AMQ-1491) bug in TcpTransport.run() and stop() holds dead connections and prevents reconnects

Posted by "Rob Davies (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-1491?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rob Davies reassigned AMQ-1491:
-------------------------------

    Assignee: Rob Davies

> bug in TcpTransport.run() and stop() holds dead connections and prevents reconnects
> -----------------------------------------------------------------------------------
>
>                 Key: AMQ-1491
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1491
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.0.0
>            Reporter: Vadim Geshel
>            Assignee: Rob Davies
>
> TcpTransport.stop() await()s on a countDownLatch that is counted down in TcpTransport.run(). When stop() is called in in the dynamic scope of run(), the countDown() will never happen. Example stack:
> "ActiveMQ Transport: tcp://localhost/127.0.0.1:62002" prio=10 tid=0x0be46c00 nid=0x2dbc waiting on condition [0x0125c000..0x0125ce50]
>    java.lang.Thread.State: WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x7f352dd0> (a java.util.concurrent.CountDownLatch$Sync)        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:712)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:870)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1182)
>         at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:207)
>         at org.apache.activemq.transport.tcp.TcpTransport.stop(TcpTransport.java:440)
>         at org.apache.activemq.transport.InactivityMonitor.stop(InactivityMonitor.java:66)
>         at org.apache.activemq.transport.TransportFilter.stop(TransportFilter.java:63)
>         at org.apache.activemq.transport.WireFormatNegotiator.stop(WireFormatNegotiator.java:78)
>         at org.apache.activemq.transport.TransportFilter.stop(TransportFilter.java:63)
>         at org.apache.activemq.transport.TransportFilter.stop(TransportFilter.java:63)
>         at org.apache.activemq.util.ServiceStopper.stop(ServiceStopper.java:41)        at org.apache.activemq.network.DemandForwardingBridgeSupport.stop(DemandForwardingBridgeSupport.java:340)        at org.apache.activemq.util.ServiceSupport.dispose(ServiceSupport.java:40)
>         at org.apache.activemq.network.DiscoveryNetworkConnector.onServiceRemove(DiscoveryNetworkConnector.java:132)
>         at org.apache.activemq.transport.discovery.simple.SimpleDiscoveryAgent.serviceFailed(SimpleDiscoveryAgent.java:104)
>         at org.apache.activemq.network.DiscoveryNetworkConnector$1.bridgeFailed(DiscoveryNetworkConnector.java:179)
>         at org.apache.activemq.network.DemandForwardingBridgeSupport.fireBridgeFailed(DemandForwardingBridgeSupport.java:909)
>         at org.apache.activemq.network.DemandForwardingBridgeSupport.serviceRemoteException(DemandForwardingBridgeSupport.java:371)
>         at org.apache.activemq.network.DemandForwardingBridgeSupport.serviceRemoteCommand(DemandForwardingBridgeSupport.java:395)
>         at org.apache.activemq.network.DemandForwardingBridgeSupport$2.onCommand(DemandForwardingBridgeSupport.java:149)
>         at org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:100)
>         at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:67)
>         at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:134)
>         at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:126)
>         - locked <0x7f3530b0> (a org.apache.activemq.transport.InactivityMonitor$1)
>         at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
>         at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:183)
>         at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:170)
>         at java.lang.Thread.run(Thread.java:619)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.