[
https://issues.apache.org/jira/browse/ARTEMIS-4787?focusedWorklogId=925982&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-925982
]
ASF GitHub Bot logged work on ARTEMIS-4787:
-------------------------------------------
Author: ASF GitHub Bot
Created on: 15/Jul/24 18:33
Start Date: 15/Jul/24 18:33
Worklog Time Spent: 10m
Work Description: tabish121 commented on PR #4957:
URL:
https://github.com/apache/activemq-artemis/pull/4957#issuecomment-2229136591
> Does
[ac1b483](https://github.com/apache/activemq-artemis/commit/ac1b483cb449b72b5eaa2b4c6547bc7cdea92dae)
factor in here at all? I believe it came up in the context of federation, but
seems like it could overlap and looks like it went in after your changes were
created.
>
> Needs rebased and retested either way at this point.
The change in the mentioned commit doesn't come into play here as the AMQP
sender controller code is checking that an address created with one routing
type doesn't get used when creating a queue with the opposing routing type, in
this case the first consumer created wins and the second case can't proceed as
it would violate the checks int he controller.
Issue Time Tracking
-------------------
Worklog Id: (was: 925982)
Time Spent: 40m (was: 0.5h)
> Anycast queue does not auto-create if already multicast queue on same address
> -----------------------------------------------------------------------------
>
> Key: ARTEMIS-4787
> URL: https://issues.apache.org/jira/browse/ARTEMIS-4787
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Components: Broker
> Reporter: Josh Byster
> Assignee: Justin Bertram
> Priority: Major
> Time Spent: 40m
> Remaining Estimate: 0h
>
> As a preface, I am aware that creating both anycast and multicast queues on
> the same address is an anti-pattern and not recommended. However, this is
> causing difficulties migrating over legacy clients from using Classic to
> Artemis.
> If one creates a JMS topic on an address, and then tries to create a JMS
> queue, it fails to create. However, if the order is flipped (creating a
> queue, then a topic), there is no exception.
> It seems like the issue is in this area of {{ServerSessionImpl}}:
> {code:java}
> Bindings bindings =
> server.getPostOffice().lookupBindingsForAddress(unPrefixedAddress);
> if (bindings != null && bindings.hasLocalBinding() && !queueConfig.isFqqn()) {
> // The address has another queue with a different name, which is fine.
> Just ignore it.
> result = AutoCreateResult.EXISTED;{code}
> Please see test below to reproduce, which throws the exception immediately as
> seen in production.
> {code:java}
> package org.apache.activemq.artemis.tests.integration;
> import org.apache.activemq.artemis.api.core.client.ClientSession;
> import org.apache.activemq.artemis.api.core.client.ClientSessionFactory;
> import org.apache.activemq.artemis.api.core.client.ServerLocator;
> import org.apache.activemq.artemis.core.server.ActiveMQServer;
> import org.apache.activemq.artemis.core.settings.impl.AddressSettings;
> import org.apache.activemq.artemis.tests.util.ActiveMQTestBase;
> import org.junit.Before;
> import org.junit.Test;
> import javax.jms.Connection;
> import javax.jms.ConnectionFactory;
> import javax.jms.MessageConsumer;
> import javax.jms.Queue;
> import javax.jms.Session;
> import javax.jms.Topic;
> import java.util.HashMap;
> public class QueueTopicSameNameTest extends ActiveMQTestBase {
> protected ActiveMQServer server;
> @Override
> @Before
> public void setUp() throws Exception {
> super.setUp();
> server = createServer(true, createDefaultNettyConfig());
> server.start();
> }
> @Test
> public void testTopicThenQueueCreate() throws Exception {
> String myAddr = "TEST";
> ConnectionFactory cf = new
> org.apache.activemq.ActiveMQConnectionFactory("failover:(tcp://localhost:61616)");
> Connection c = cf.createConnection();
> Session s = c.createSession();
> Topic t = s.createTopic(myAddr);
> MessageConsumer consumer = s.createConsumer(t);
> Queue q = s.createQueue(myAddr);
> MessageConsumer otherConsumer = s.createConsumer(q);
> c.close();
> }
> }{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact