Uploaded image for project: 'JBoss A-MQ'
  1. JBoss A-MQ
  2. ENTMQ-2053

Possible Race Condition between Topic Removal and New Client Subscription

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • JBoss A-MQ 6.3.x
    • JBoss A-MQ 6.2.1
    • broker
    • None
    • Hide

      (Reproducer in work)

      Show
      (Reproducer in work)

    Description

      It appears that if a topic is in the midst of being removed when a new subscriber is attaching, the purge / remove command fails with resultant exceptions similar to:

      2017-01-26 10:46:51,913 | ERROR | [amq0] Scheduler | RegionBroker                     | ivemq.broker.region.RegionBroker  914 | 137 - org.apache.activemq.activemq-osgi - 5.11.0.redhat-621084 | Failed to remove inactive destination org.apache.activemq.security.AuthorizationDestinationFilter@1d595aad
      javax.jms.JMSException: Destination still has an active subscription: topic://home.sample5550
      	at org.apache.activemq.broker.region.AbstractRegion.removeDestination(AbstractRegion.java:194)[137:org.apache.activemq.activemq-osgi:5.11.0.redhat-621084]
      	at org.apache.activemq.broker.jmx.ManagedTopicRegion.removeDestination(ManagedTopicRegion.java:62)[137:org.apache.activemq.activemq-osgi:5.11.0.redhat-621084]
      	at org.apache.activemq.broker.region.RegionBroker.removeDestination(RegionBroker.java:363)[137:org.apache.activemq.activemq-osgi:5.11.0.redhat-621084]
      	at org.apache.activemq.broker.BrokerFilter.removeDestination(BrokerFilter.java:177)[137:org.apache.activemq.activemq-osgi:5.11.0.redhat-621084]
      	at org.apache.activemq.broker.BrokerFilter.removeDestination(BrokerFilter.java:177)[137:org.apache.activemq.activemq-osgi:5.11.0.redhat-621084]
      	at org.apache.activemq.security.AbstractAuthenticationBroker.removeDestination(AbstractAuthenticationBroker.java:38)[137:org.apache.activemq.activemq-osgi:5.11.0.redhat-621084]
      	at org.apache.activemq.broker.BrokerFilter.removeDestination(BrokerFilter.java:177)[137:org.apache.activemq.activemq-osgi:5.11.0.redhat-621084]
      	at org.apache.activemq.security.AuthorizationBroker.removeDestination(AuthorizationBroker.java:129)[137:org.apache.activemq.activemq-osgi:5.11.0.redhat-621084]
      	at org.apache.activemq.broker.MutableBrokerFilter.removeDestination(MutableBrokerFilter.java:182)[137:org.apache.activemq.activemq-osgi:5.11.0.redhat-621084]
      	at org.apache.activemq.broker.region.RegionBroker.purgeInactiveDestinations(RegionBroker.java:912)[137:org.apache.activemq.activemq-osgi:5.11.0.redhat-621084]
      	at org.apache.activemq.broker.region.RegionBroker$1.run(RegionBroker.java:118)[137:org.apache.activemq.activemq-osgi:5.11.0.redhat-621084]
      	at org.apache.activemq.thread.SchedulerTimerTask.run(SchedulerTimerTask.java:33)[137:org.apache.activemq.activemq-osgi:5.11.0.redhat-621084]
      	at java.util.TimerThread.mainLoop(Timer.java:555)[:1.8.0_91]
      	at java.util.TimerThread.run(Timer.java:505)[:1.8.0_91]
      

      filling the logs.
      At every time, the same TOPIC was trying to be removed and above Exception was thrown.

      Attachments

        1. amq.log.zip
          42 kB
        2. reproducer.tar.gz
          4.10 MB
        3. rule.btm
          0.3 kB

        Activity

          People

            gtully@redhat.com Gary Tully
            rhn-support-dhawkins Duane Hawkins
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: