[ https://issues.apache.org/jira/browse/AMQ-7185?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16922493#comment-16922493 ]
David Hilton edited comment on AMQ-7185 at 9/4/19 1:42 PM: ----------------------------------------------------------- [~gtully] Do you have any feeling as to when 5.16.x might get released ? was (Author: davidhilton68): Do you have any feeling as to when 5.16.x might get released ? > XA durable sub prepared acks don't block redelivery > --------------------------------------------------- > > Key: AMQ-7185 > URL: https://issues.apache.org/jira/browse/AMQ-7185 > Project: ActiveMQ > Issue Type: Bug > Components: Broker, XA > Affects Versions: 5.15.0 > Reporter: Gary Tully > Assignee: Gary Tully > Priority: Major > Fix For: 5.16.0 > > > If a durable sub acks a message in an XA transaction, on prepare the disk > image is updated and on recovery the messages is pending an outcome and won't > be redelivered. > however if the durable sub disconnects and reconnects without a broker > restart, it can receive the same messages again. Acked and prepared messages > should be blocked pending the xa transaction outcome. > This duplicate delivery can result in duplicate acks and early deletion of > the message due to the reference count. The end result, another sub may see > the message pending but not be able to receive it b/c it has already been > removed from the store. > symptom in other words: > durableSub1 and durableStub2 registered, send one message to the topic. The > message reference count is 2. > durabelSub1 does receive in xa transaction, prepares and dies. The ack needs > recovery and completion via the transaction manager. > durableSub1 reconnects and gets the same message again! commits success. The > message reference count is decremented to 1. > the first xa transaction gets recovered and commits, the duplicate ack gets > processed; the message reference count is 0 and the message gets deleted in > error. > durableSub2 tries to receive, message pending is 1, but it does not get any > message! > > > -- This message was sent by Atlassian Jira (v8.3.2#803003)