[ 
https://issues.apache.org/jira/browse/AMQ-6133?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christopher L. Shannon resolved AMQ-6133.
-----------------------------------------
    Resolution: Fixed
      Assignee: Christopher L. Shannon

Patch and test submitted by [~tabish121] applied to master and 5.13.x.

> 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
>            Assignee: Christopher L. Shannon
>             Fix For: 5.13.1, 5.14.0
>
>         Attachments: AMQ6133PersistJMSRedeliveryTest.java, 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)

Reply via email to