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