activemq-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christopher L. Shannon (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (AMQ-6133) Message updates can cause message loss on recovery
Date Fri, 01 Apr 2016 13:14:25 GMT

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

Christopher L. Shannon edited comment on AMQ-6133 at 4/1/16 1:13 PM:
---------------------------------------------------------------------

Actually, I think what is happening is that the update command is running first because it's
not done async like the add message command.  So I think the fix might be to do the update
command async as well, or maybe modify the original add message command if it hasn't been
performed yet.


was (Author: christopher.l.shannon):
Actually, I think what is happening is that the update command is running first because it's
not done async like the add message command.  So I think the fix might be to do the update
command async as well.

> 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)

Mime
View raw message