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

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

bq. ...this bug report is proving that this is bit error prone approach, 
therefore some mitigation measure should be implemented regardless of fix for 
the issue in this Jira bug.

In case you missed this in my last comment, I provided a mitigation measure 
(i.e. "you can statically create a queue on the dead-letter address to ensure 
messages are not lost").

bq. For example throwing exception if a message for destination with 
auto-create DLQ is being delivered nowhere, this would help to satisfy 
guaranteed delivery concept in case of future code changes which would 
accidentally reintroduce similar bug.

I think the best that could be done here would be to log a WARN message. This 
is similar to what is already done in other situations like this.

> 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