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

Excessive number of connections by failover transport with priorityBackup

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 5.14.5
    • Fix Version/s: None
    • Component/s: Broker
    • Labels:
      None

      Description

      My clients connect to AMQ with this connection string:

      (tcp://amq1:61616,tcp://amq2:61616)?randomize=false&priorityBackup=true

       It works - for some time. But sooner or later my AMQ server becomes unresponsive because the host it runs on runs out of resources (threads).

      Suddenly AMQ Server log explodes with the messages like:

      2018-01-26 09:26:16,909 | WARN  | Failed to register MBean org.apache.activemq :type=Broker,brokerName=activemq-vm-primary,connector=clientConnectors,connect
      
      orName=default,connectionViewType=clientId,connectionName=ID_ca8f70e115d0-3708
      
      7-1516883370639-0_22 | org.apache.activemq.broker.jmx.ManagedTransportConnecti
      
      on | ActiveMQ Transport: tcp:///172.10.7.56:55548@61616
      
      2018-01-26 09:26:21,375 | WARN  | Ignoring ack received before dispatch; result of failover with an outstanding ack. Acked messages will be replayed if present on this broker. Ignored ack: MessageAck \{commandId = 157, responseRequired = false, ackType = 2, consumerId = ID:ca8f70e115d0-37087-1516883370639-1:22:10:1, firstMessageId = ID:a95345a9c0df-33771-1516883685728-1:17:5:1:23, lastMessageId = ID:a95345a9c0df-33771-1516883685728-1:17:5:1:23, destination = queue://MY_QUEUE_OUT, transactionId = null, messageCount = 1, poisonCause = null} | org.apache.activemq.broker.region.PrefetchSubscription | ActiveMQ Transport: tcp:///172.16.6.56:55464@61616
      
      2018-01-26 09:26:39,211 | WARN  | Transport Connection to: tcp://172.10.6.56:55860 failed: java.net.SocketException: Connection reset | org.apache.activemq.broker.TransportConnection.Transport | ActiveMQ InactivityMonitor Worker
      
      2018-01-26 09:26:47,175 | WARN  | Transport Connection to: tcp://172.10.6.56:57012 failed: java.net.SocketException: Broken pipe (Write failed) | org.apache.activemq.broker.TransportConnection.Transport | ActiveMQ InactivityMonitor Worker
      

      After short period of time AMQ server comes out of resources with "java.lang.OutOfMemoryError: unable to create new native thread" error. The AMQ service process in this case has a huge number of threads (some thousands)

       

      The client side log contains a lot of reconnection attempts messages like:

      2018-01-26 00:10:31,387 WARN    [\{{bundle.name,org.apache.activemq.activemq-osgi}{bundle.version,5.14.1}\{bundle.id,181}}]     [null]  org.apache.activemq.transport.failover.FailoverTransport      Failed to connect to [tcp://activemq-vm-primary:61616, tcp://activemq-vm-secondary:61616] after: 810 attempt(s) continuing to retry.
      

      It seems that client creates a huge number of connections by failover retry and after some time kills the server.

      Issue looks very similar to described in https://issues.apache.org/jira/browse/AMQ-6603, however server isn't configured with access control settings.

      I found the description of similar problem into http://activemq.2283324.n4.nabble.com/ActiveMQ-5-2-OutOfMemoryError-unable-to-create-new-native-thread-td2366585.html,  but without concrete suggestion.

       

      Part of server log is attached

        Attachments

        1. activemq-part.zip
          18 kB
          Andrei Shakirin

          Issue Links

            Activity

              People

              • Assignee:
                jbonofre Jean-Baptiste Onofré
                Reporter:
                ashakirin Andrei Shakirin
              • Votes:
                1 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated: