[
https://issues.apache.org/jira/browse/AMQ-6133?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Christopher L. Shannon updated AMQ-6133:
----------------------------------------
Attachment: (was: AMQ6133Test.java)
> Message updates can cause message loss on recovery
> --------------------------------------------------
>
> Key: AMQ-6133
> URL: https://issues.apache.org/jira/browse/AMQ-6133
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker, KahaDB
> Affects Versions: 5.13.0
> Reporter: Christopher L. Shannon
> Attachments: AMQ6133Test.java
>
>
> After doing some testing with AMQ-6131, I noticed a similar issue where
> messages can be lost if a message update is called.
> Normally when KahaDB gets a KahaUpdateMessageCommand it will update the index
> with the new location. This works except that if the index is deleted or
> corrupted and needs to be rebuilt, the replay process may not be able to
> recover the message.
> This happens because after the message is updated, KahaDB is free to garbage
> collect the file with the original add command. So, whatt happens is that
> during replay when the update command is seen KahaDB rejects it because it
> can't find the original message if that file has been GC'd. This happens in
> the updateIndex method of MessageDatabase on line 1395 where it prints out a
> warning saying "Non existent message update attempt rejected".
> I am attaching a unit test that demonstrates the issue where the count after
> restart is missing messages.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)