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

ASF subversion and git services commented on AMQ-9435:
------------------------------------------------------

Commit 10d94bd16585df7bf9c266958c5e45bb556e8c14 in activemq's branch 
refs/heads/main from Christopher L. Shannon
[ https://gitbox.apache.org/repos/asf?p=activemq.git;h=10d94bd16 ]

AMQ-9435 - Ensure orderIndex next id is rolled back on duplicates

This commit fixes a bug in KahaDB that caused gaps in sequence ack
tracking for durables that would lead to the appearance of stuck
messages on durable subs if duplicate messages were detected. The
sequence is now correctly rolled back so that there is no gap if the
message is not added to the order index


> KahaDB durable sub tracking breaks on duplicate messages
> --------------------------------------------------------
>
>                 Key: AMQ-9435
>                 URL: https://issues.apache.org/jira/browse/AMQ-9435
>             Project: ActiveMQ Classic
>          Issue Type: Bug
>          Components: KahaDB
>    Affects Versions: 5.18.3, 6.0.1
>            Reporter: Christopher L. Shannon
>            Assignee: Christopher L. Shannon
>            Priority: Major
>             Fix For: 6.1.0, 5.18.4, 6.0.2
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> There is a bug in KahaDB on message add where if a message is marked as a 
> duplicate the orderIndex next message Id is not rolled back. When a duplicate 
> is detected and ignored the index is supposed to be rolled back so that the 
> state isn't broken but in this case the sequence id is still incremented and 
> this leads to gaps in the order index sequence.
> KahaDB tracks pending messages that need to be acknowledged for durable subs 
> in a SequenceSet and that set is expected to be contiguous and if it isn't it 
> breaks. The gaps lead to the store reporting messages still exist for 
> durables and they appear as "stuck" even though there are no messages.
> The fix is to roll back the counter (this is already done in another spot) so 
> it is only incremented if the message is stored. If an existing store is 
> broken by this bug an index rebuild is likely necessary but then it wouldn't 
> come back.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to