[
https://issues.apache.org/jira/browse/ZOOKEEPER-1520?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13475902#comment-13475902
]
Flavio Junqueira commented on ZOOKEEPER-1520:
---------------------------------------------
The patch looks good to me, thanks, Bill. I have a question about how to
recover from such errors. With this patch, if there is a corrupt record, then
we throw an exception, which I believe would prevent a server from starting.
Does it mean that if we get a corrupt record on a given node, we won't be able
to recover the data on the disk of that node?
> A txn log record with a corrupt sentinel byte looks like EOF
> ------------------------------------------------------------
>
> Key: ZOOKEEPER-1520
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1520
> Project: ZooKeeper
> Issue Type: Bug
> Components: server
> Affects Versions: 3.3.5
> Environment: all
> Reporter: Bill Bridge
> Assignee: Bill Bridge
> Priority: Minor
> Labels: newbie, patch
> Fix For: 3.3.6
>
> Attachments: ant.out, checkout.out, init.out, init.out,
> ZOOKEEPER-1520.patch
>
> Original Estimate: 24h
> Remaining Estimate: 24h
>
> In Util.readTxnBytes() the sentinel is compared with 0x42 and if it does not
> match then the record is considered partially written and thus the EOF.
> However if it is a partial record the sentinel should be 0x00 since that is
> what the log is initialized with. Any other value would indicate corruption
> and should throw an IOException rather than indicate EOF. See
> [ZOOKEEPER-1453|https://issues.apache.org/jira/browse/ZOOKEEPER-1453] for a
> related issue.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira