Chao Wang created WFLY-13882:
--------------------------------
Summary: StartException with "AMQ229204: Address already exists" on
existing multicast queue creation
Key: WFLY-13882
URL:
https://issues.redhat.com/browse/WFLY-13882
Project: WildFly
Issue Type: Bug
Components: JMS
Affects Versions: 21.0.0.Beta1
Reporter: Chao Wang
Assignee: Emmanuel Hugonnet
# configure a MDB with jms topic to read message from a remote artemis server.
# trigger a server reload to recreate multicast queue on the remote artemis server.
{code:java}
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
{code}
This happens because WFLY-13581 changed the invocation name from {{createQueue}} to
{{createAddress}}, the reply body includes
{code:xml}
["AMQ229204: Address already exists: jms.topic.testTopic"]{code}
which is not being checked in the {{destinationAlreadyExist}} method
{code:java}
private boolean destinationAlreadyExist(String body) {
return body.contains("AMQ119019") ||
body.contains("AMQ119018") || body.contains("AMQ229019") ||
body.contains("AMQ229018");
}
{code}
Based on
https://github.com/apache/activemq-artemis/blob/master/artemis-server/src...,
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.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)