Uploaded image for project: 'AMQ Broker'
  1. AMQ Broker
  2. ENTMQBR-4423

[LTS] Adding Wildcard Subscriptions Can Take Too Long, Resulting in Connections Closures Due to Exceeded KeepAlive

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Critical
    • None
    • AMQ 7.4.5.GA
    • None
    • None
    • False
    • False
    • ?
    • Undefined
    • Verified in a release
    • Hide

      TBD, but essentials are:

      • Deploy a broker cluster with load-balancing of ON_DEMAND
      • Deploy a number of topics
      • Create a very large number of wildcard subscriptions (on the order of 20k)
      • Under a load, detach and reattach subscriptions and watch for the client to report timeouts exceeded and close connections
      Show
      TBD, but essentials are: Deploy a broker cluster with load-balancing of ON_DEMAND Deploy a number of topics Create a very large number of wildcard subscriptions (on the order of 20k) Under a load, detach and reattach subscriptions and watch for the client to report timeouts exceeded and close connections

    Description

      When there are many wildcard (MQTT) subscriptions, searching for matching addresses in org.apache.activemq.artemis.core.postoffice.impl.WildcardAddressManager::.addAndUpdateAddressMap can take too long, causing the associated transport thread to miss heartbeats resulting in a closed connection. The method is synchronized, so having several threads queued on this method can easily result in timeouts. Is there a possibility of off-loading this processing to avoid blocking the connection thread and / or adding thread-safe concurrent access to the underlying map / data structures?

      Attachments

        Issue Links

          Activity

            People

              gtully@redhat.com Gary Tully
              dbruscin Domenico Francesco Bruscino
              Tiago Bueno Tiago Bueno
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: