You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Gary Tully (JIRA)" <ji...@apache.org> on 2017/03/07 12:32:38 UTC

[jira] [Comment Edited] (AMQ-6606) Journal partial write can result in batch corruption on restart

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

Gary Tully edited comment on AMQ-6606 at 3/7/17 12:32 PM:
----------------------------------------------------------

This needs more work.. readjustment of offset needs to terminate next pending write batch.


was (Author: gtully):
This needs more work.. readjustment of offset needs to percolate into all queued writes...  some more thought required to validate, but this current fix is not suffice.

> Journal partial write can result in batch corruption on restart
> ---------------------------------------------------------------
>
>                 Key: AMQ-6606
>                 URL: https://issues.apache.org/jira/browse/AMQ-6606
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: KahaDB
>    Affects Versions: 5.14.0
>            Reporter: Gary Tully
>            Assignee: Gary Tully
>             Fix For: 5.15.0, 5.14.4
>
>
> Recovery checking on kahadb will ignore a partial journal write at the end of the journal. However repeated write errors increment the write offset and if a subsequent write succeeds recovery fails reporting a corrupt block.
> {code}
>  MessageDatabase  | emq.store.kahadb.MessageDatabase | Detected corrupt journal files. [34:43883209 >= key < 34:47226069]
> {code}
> One scenario is write failure for no space followed by gc which allows subsequent writes to complete.
> A failed write or sync should fail with an exception and should revert any offset increment such that a subsequent write reuses that offset, avoiding a partial write corruption. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)