You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@artemis.apache.org by "samuellvicente (via GitHub)" <gi...@apache.org> on 2026/10/22 12:04:04 UTC

[PR] ARTEMIS-XXXX AMQP retry routes to every subscriber [artemis]

samuellvicente opened a new pull request, #6819:
URL: https://github.com/apache/artemis/pull/6819

   JIRA: not filed yet, the ARTEMIS-XXXX placeholder will be replaced once it exists.
   
   Retrying an AMQP message from the DLQ (`QueueControl.retryMessage(long)` / `retryMessages()`) that had been
   dead-lettered from one subscription queue of a multicast address delivered it to every queue of the address, and left
   a `_AMQ_ROUTE_TO` application property on the copies.
   
   `QueueImpl.move()` stored the target queue id with `putBytesProperty`, which for an `AMQPMessage` is an application
   property, while `BindingsImpl.route()` reads it with `removeExtraBytesProperty`. The fix uses `putExtraBytesProperty`,
   as the cluster paths already do since ARTEMIS-1297. For core messages both methods use the same map, so nothing
   changes there.
   
   ### Tests
   
   - New `AmqpRetryMulticastTest` (AMQP and core, `retryMessages()` and `retryMessage(id)`): a multicast address with two
     subscriptions, one message dead-lettered from the first, retried from the DLQ. Asserts the first queue gets it back,
     the second still has exactly one, and no `_AMQ_ROUTE_TO` property is left. Both AMQP cases fail without the fix
     (`expected: <1> but was: <2>`).
   - Ran with the fix: AmqpRetryMulticastTest, AmqpDLQReceiverTest, AmqpExpiredMessageTest, AmqpReceiverDispositionTest,
     AmqpReceiverDispositionRejectAsUnmodifiedModeTests, DLQAfterExpiredMessageTest, AMQPMirrorExpiryQueueTest,
     BrokerInSyncTest, SNFPagedMirrorTest, AmqpLargeMessageRedistributionTest, AMQPMessageRedistributionTest,
     LargeMessageRedistributionTest, both MessageRedistributionTest classes, PagedSNFTopicDistributionTest, DivertTest,
     QueueControlTest, QueueControlUsingCoreTest, AutoCreateDeadLetterResourcesTest, ScaleDownTest, ScaleDownDirectTest,
     ScaleDownRemoveSFTest, ScaleDown3NodeTest (742 run, 0 failures, 5 skipped), plus unit tests BindingsImplTest,
     QueueImplTest, AMQPMessageTest, AMQPLargeMessageWriterTest.
   
   ### Not in this PR
   
   ARTEMIS-5445 (`moveBetweenSnFQueues` NPE with AMQP) has the opposite mismatch: the id is in the extra properties but the
   code only scans `getPropertyNames()`. Fixing it needs a way to enumerate extra property names, so it is left for that
   issue.
   
   _Claude Code (Claude Opus 5.5) on behalf of Samuel Vicente_
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@artemis.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@artemis.apache.org
For additional commands, e-mail: issues-help@artemis.apache.org


Re: [PR] ARTEMIS-XXXX AMQP retry routes to every subscriber [artemis]

Posted by "jbertram (via GitHub) via issues" <is...@artemis.apache.org>.
jbertram commented on PR #6819:
URL: https://github.com/apache/artemis/pull/6819#issuecomment-6636724888

   @samuellvicente I saw that you requested (and was granted) a Jira account. Will you be creating a Jira for this and updating the commit message?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@artemis.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@artemis.apache.org
For additional commands, e-mail: issues-help@artemis.apache.org