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

Excessive number of connections by failover transport with priorityBackup

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 5.14.5
    • 5.15.15, 5.16.2, 5.17.0
    • Broker
    • 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

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

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 0.5h
                  0.5h