Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 5.0.0
    • Fix Version/s: 5.3.0
    • Component/s: Transport
    • Labels:
      None
    • Environment:

      apache-activemq-5.0-20071008.215641-19, RHEL 4, JDK 1.6.0_02

      Description

      The bridge between two nodes keeps falling down after a few minutes of use.

      This is maybe a misconfiguration and totally my bad, so here is the network config:

      <transportConnectors>
      <transportConnector uri="vm://$

      {esb.node.name}" />
      <transportConnector uri="tcp://localhost:58080" discoveryUri="rendezvous://dev-esb-node" />
      </transportConnectors>

      <networkConnectors>
      <networkConnector conduitSubscriptions="true" decreaseNetworkConsumerPriority="true" dynamicOnly="true"
      networkTTL="64" uri="rendezvous://dev-esb-node" userName="broker" password="XXX" />
      </networkConnectors>


      ${esb.node.name}

      resolves to "backbone-node-8080" on one box and "collection-node-8080" on the other.

      And here are the errors when the bridge crashes:

      11:04:46,241 DEBUG [org.apache.activemq.network.DemandForwardingBridge] backbone-node-8080 Forwarding sub on vm://backbone-node-8080#4 from collection-node-8080 : ConsumerInfo

      {commandId = 4, responseRequired = true, consumerId = ID:ddo-mbp.local-51198-1191953085196-0:0:1:1, destination = queue://esb.admin.errors, prefetchSize = 500, maximumPendingMessageLimit = 0, browser = true, dispatchAsync = false, selector = null, subscriptionName = null, noLocal = false, exclusive = false, retroactive = false, priority = 0, brokerPath = null, optimizedAcknowledge = false, noRangeAcks = false, additionalPredicate = null}

      11:04:46,250 INFO [org.apache.activemq.network.DemandForwardingBridge] Network connection between vm://backbone-node-8080#4 and tcp://esb-backbone-node2.dev.com/10.20.116.14:58
      080 shutdown due to a local error: java.lang.NullPointerException
      11:04:46,254 DEBUG [org.apache.activemq.network.DemandForwardingBridge] The local Exception was:java.lang.NullPointerException
      java.lang.NullPointerException
      at org.apache.activemq.network.DemandForwardingBridgeSupport.configureMessage(DemandForwardingBridgeSupport.java:539)
      at org.apache.activemq.network.DemandForwardingBridgeSupport.serviceLocalCommand(DemandForwardingBridgeSupport.java:561)
      at org.apache.activemq.network.DemandForwardingBridgeSupport$1.onCommand(DemandForwardingBridgeSupport.java:137)
      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.vm.VMTransport.oneway(VMTransport.java:102)
      at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:40)
      at org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:59)
      at org.apache.activemq.broker.TransportConnection.dispatch(TransportConnection.java:1184)
      at org.apache.activemq.broker.TransportConnection.processDispatch(TransportConnection.java:803)
      at org.apache.activemq.broker.TransportConnection.iterate(TransportConnection.java:838)
      at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:118)
      at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:42)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
      at java.lang.Thread.run(Thread.java:619)
      11:04:46,259 DEBUG [org.apache.activemq.network.DemandForwardingBridge] stopping backbone-node-8080 bridge to collection-node-8080 is disposed already ? false
      11:04:46,261 INFO [org.apache.activemq.network.DemandForwardingBridge] backbone-node-8080 bridge to collection-node-8080 stopped

        Activity

        Transition Time In Source Status Execution Times Last Executer Last Execution Date
        Open Open Resolved Resolved
        704d 16h 8m 1 Rob Davies 13/Sep/09 10:43
        Jeff Turner made changes -
        Project Import Fri Nov 26 22:32:02 EST 2010 [ 1290828722158 ]
        Rob Davies made changes -
        Resolution Fixed [ 1 ]
        Status Open [ 1 ] Resolved [ 5 ]
        Fix Version/s 5.4.0 [ 12110 ]
        Fix Version/s 5.3.0 [ 11914 ]
        Hide
        Rob Davies added a comment -

        This should be resolved in 5.3

        Show
        Rob Davies added a comment - This should be resolved in 5.3
        Rob Davies made changes -
        Assignee Rob Davies [ rajdavies ]
        Gary Tully made changes -
        Fix Version/s 5.3.0 [ 11914 ]
        Fix Version/s 5.4.0 [ 12110 ]
        Rob Davies made changes -
        Field Original Value New Value
        Fix Version/s 5.3.0 [ 11914 ]
        Hide
        Ari Cooperman added a comment -

        This same exact thing happens for me as well. I am also using embedded brokers with VM transport

        Show
        Ari Cooperman added a comment - This same exact thing happens for me as well. I am also using embedded brokers with VM transport
        Hide
        David Dossot added a comment -

        Interestingly AMQ-805 gives the impression the bridge should auto-reconnect...

        Show
        David Dossot added a comment - Interestingly AMQ-805 gives the impression the bridge should auto-reconnect...
        Hide
        David Dossot added a comment -

        I have stopped using VM transport altogether from my embedded client application, but the problem still happens: the bridge keeps falling down.

        I noticed the issue seems to happen if I have a queue browser (from Hermes) on the same distributed queue my application is using.

        I recognize the issue is hard to reproduce on your side, but in the mean time can the bridge be made more resilient to runtime exceptions so it recovers and does not stop?

        Show
        David Dossot added a comment - I have stopped using VM transport altogether from my embedded client application, but the problem still happens: the bridge keeps falling down. I noticed the issue seems to happen if I have a queue browser (from Hermes) on the same distributed queue my application is using. I recognize the issue is hard to reproduce on your side, but in the mean time can the bridge be made more resilient to runtime exceptions so it recovers and does not stop?
        Hide
        David Dossot added a comment -

        The NPE is thrown on this line:

        Message message = md.getMessage().copy();

        By following the code before this line, md can not be null, so this is getMessage() that is null.

        Is this because I am erroneously using the VM transport? The reason I am using this transport is because my brokers are embedded in Java apps that connect to the local broker using the VM adapter.

        Show
        David Dossot added a comment - The NPE is thrown on this line: Message message = md.getMessage().copy(); By following the code before this line, md can not be null, so this is getMessage() that is null. Is this because I am erroneously using the VM transport? The reason I am using this transport is because my brokers are embedded in Java apps that connect to the local broker using the VM adapter.
        David Dossot created issue -

          People

          • Assignee:
            Rob Davies
            Reporter:
            David Dossot
          • Votes:
            2 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development