Justin Bertram created ARTEMIS-4212:
---------------------------------------
Summary: Unexpected Behavior when Routing Type of Destinations
Doesn't Match Clients
Key: ARTEMIS-4212
URL: https://issues.apache.org/jira/browse/ARTEMIS-4212
Project: ActiveMQ Artemis
Issue Type: Improvement
Reporter: Justin Bertram
Assignee: Justin Bertram
When the routing type of an address (and associated queue) does not match the
routing type of a client producer, the resultant behavior is a bit unexpected.
Expected Behavior:
If a client sends a message to an address / queue with the same name, but a
different routing type, the expected behavior would be to throw some sort of
InvalidDestinationException (if auto-create is not enabled), or to create the
matching address and queue with the appropriate routing type. The routing count
on the existing address (with non-matching routing type) should remain
unchanged.
Actual Behavior:
When sending, for example, to a predefined anycast address and queue from a
multiccast (Topic) producer, the routed count on the address is incremented,
but the message count on the matching queue is not. No indication is given at
the client end that the messages failed to get routed - they are silently
dropped.
This is reproducible using a qpid / proton queue producer to send to a
multicast address or using a topic producer to send to an anycast address, e.g.:
1. Create a a broker, setting auto-create-queues and auto-create addresses to
"false" for the catch-all address-setting
2. Start the broker and create a an address and matching queue with a ANYCAST
routing type
3. Send 1000 messages to the broker using the same queue name but mismatched
routing type:
{code}
./artemis producer --url amqp://localhost:61616 --user admin --password admin
--destination topic://{QUEUE NAME} --protocol amqp
{code}
No error is emitted and the routing count is incremented by 1000 at the address
level, but remains unchanged at the destination level.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)