[ 
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

Reply via email to