Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-13882

StartException with "AMQ229204: Address already exists" on existing multicast queue creation

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 21.0.0.Final
    • 21.0.0.Beta1
    • JMS
    • None
    • Undefined
    • ---
    • ---

    Description

      1. configure a MDB with jms topic to read message from a remote artemis server.
      2. trigger a server reload to recreate multicast queue on the remote artemis server.
      11:13:49,627 ERROR [org.wildfly.extension.messaging-activemq] (Thread-0 (ActiveMQ-client-global-threads)) Creating topic jms.topic.testTopic on node UP {"name":"b5f8a47b-f95c-11ea-8a99-b4d5bdef5ecf","factoryClassName":"org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnectorFactory","params":{"port":"61616","localAddress":"127.0.0.1","host":"localhost"},"extraProps":{}} failed: org.jboss.msc.service.StartException in anonymous service: WFLYMSGAMQ0099: Creating the remote destination jms.topic.testTopic failed with error ["AMQ229204: Address already exists: jms.topic.testTopic"]
       at org.wildfly.extension.messaging-activemq//org.wildfly.extension.messaging.activemq.jms.DestinationConfiguration.createTopic(DestinationConfiguration.java:147)
       at org.wildfly.extension.messaging-activemq//org.wildfly.extension.messaging.activemq.jms.ExternalJMSTopicService$1.nodeUP(ExternalJMSTopicService.java:92)
       at org.apache.activemq.artemis@2.10.1//org.apache.activemq.artemis.core.client.impl.Topology$3.run(Topology.java:371)
       at org.apache.activemq.artemis.journal//org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:42)
       at org.apache.activemq.artemis.journal//org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:31)
       at org.apache.activemq.artemis.journal//org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:66)
       at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
       at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
       at org.apache.activemq.artemis.journal//org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
      11:13:49,628 WARN [org.apache.activemq.artemis.utils.actors.OrderedExecutor] (Thread-0 (ActiveMQ-client-global-threads)) org.jboss.msc.service.StartException in anonymous service: WFLYMSGAMQ0099: Creating the remote destination jms.topic.testTopic failed with error ["AMQ229204: Address already exists: jms.topic.testTopic"]: java.lang.RuntimeException: org.jboss.msc.service.StartException in anonymous service: WFLYMSGAMQ0099: Creating the remote destination jms.topic.testTopic failed with error ["AMQ229204: Address already exists: jms.topic.testTopic"]
       at org.wildfly.extension.messaging-activemq//org.wildfly.extension.messaging.activemq.jms.ExternalJMSTopicService$1.nodeUP(ExternalJMSTopicService.java:95)
       at org.apache.activemq.artemis@2.10.1//org.apache.activemq.artemis.core.client.impl.Topology$3.run(Topology.java:371)
       at org.apache.activemq.artemis.journal//org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:42)
       at org.apache.activemq.artemis.journal//org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:31)
       at org.apache.activemq.artemis.journal//org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:66)
       at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
       at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
       at org.apache.activemq.artemis.journal//org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
      Caused by: org.jboss.msc.service.StartException in anonymous service: WFLYMSGAMQ0099: Creating the remote destination jms.topic.testTopic failed with error ["AMQ229204: Address already exists: jms.topic.testTopic"]
       at org.wildfly.extension.messaging-activemq//org.wildfly.extension.messaging.activemq.jms.DestinationConfiguration.createTopic(DestinationConfiguration.java:147)
       at org.wildfly.extension.messaging-activemq//org.wildfly.extension.messaging.activemq.jms.ExternalJMSTopicService$1.nodeUP(ExternalJMSTopicService.java:92)
       ... 7 more
      

      This happens because WFLY-13581 changed the invocation name from createQueue to createAddress, the reply body includes 

      ["AMQ229204: Address already exists: jms.topic.testTopic"]

      which is not being checked in the destinationAlreadyExist method

          private boolean destinationAlreadyExist(String body) {
              return body.contains("AMQ119019") || body.contains("AMQ119018") || body.contains("AMQ229019") || body.contains("AMQ229018");
          }
      

      Based on https://github.com/apache/activemq-artemis/blob/master/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/ActiveMQMessageBundle.java#L407, including the extra AMQ229204 would fix this.

      Also, I am not sure about Artemis 1.x series as there is no such createAddress invocation in Artemis 1.x.

       

       

      Attachments

        Issue Links

          Activity

            People

              ehugonne1@redhat.com Emmanuel Hugonnet
              chaowan@redhat.com Chao Wang
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: