[ 
https://issues.apache.org/jira/browse/ARTEMIS-2649?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17056342#comment-17056342
 ] 

Justin Bertram commented on ARTEMIS-2649:
-----------------------------------------

I've reproduced the issue you're seeing with a unit test of my own. Thanks for 
providing those details. I'm working on a solution. In the mean-time you can 
statically create a queue on the dead-letter address to ensure messages are not 
lost.

bq. ...I think that one of the requirements should be that under no 
circumstances, you can actually lose a message.

That is already a requirement. In fact, it's a general requirement of the 
broker. However, bugs do happen. Thanks for testing and catching this one 
before it was released.

For what it's worth I don't think the fix you proposed would be suitable 
because it would reduce the flexibility of the dead-letter address since 
messages would be sent directly to the fully-qualified dead-letter queue rather 
than the address which would prevent any other consumers on the dead-letter 
address from receiving those messages if they wanted. In short, it would 
nullify the multicast nature of the dead-letter address.

> Auto-create DLQ message loss when moving messages between destinations
> ----------------------------------------------------------------------
>
>                 Key: ARTEMIS-2649
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-2649
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 2.12.0
>         Environment: Centos 7 container in OKD with Java 8.
>            Reporter: Piotr Klimczak
>            Priority: Major
>
> [~jbertram], first of all thanks a lot for ARTEMIS-2587 implementation.
>  This was a must for me to switch to Artemis.
>  In past I have even tried to implement it in Artermis, but having no 
> previous experience with it, only with your PR I understood how nicely and 
> easily it can be implemented and how much I have overcomplicated it.
> So I am testing 2.12.0 snapshot as I am really interested in work done under 
> ARTEMIS-2587.
>  I am connecting using open wire protocol using camel-jms component, having 
> replaced old AMQ5 with Artermis.
> On failed consumption, I can see queue being created under DLQ address with 
> multicast and filter _AMQ_ORIG_ADDRESS = 'some.queue'.
>  However it is empty and message is lost.
> Reproduction scenario:
>  # Sending message to address A
>  # Moving message from A queue to B using web console move function
>  # Consuming from B and failing consumption
> Observed state:
>  # Queue is being created
>  # Message is lost and logs are not indicating anything
> As a result this message being moved from A to be B queue, the header 
> "_AMQ_ORIG_ADDRESS" has value "A" instead of "B" and therefore it does not 
> match the filter "B" and is getting lost.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to