[
https://issues.apache.org/jira/browse/BOOKKEEPER-62?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13159320#comment-13159320
]
Sijie Guo commented on BOOKKEEPER-62:
-------------------------------------
most is good for me.
But seems that the patch changes the format of lastId.
if the code is running on old lastId files, it would failed due to IOException
because the *position* field is missing. Shall we set *position* to 0 if
missing *position* field in lastId files?
BTW, the patch includes other changes. could you check it again?
> Bookie can not start when encountering corrupted records
> --------------------------------------------------------
>
> Key: BOOKKEEPER-62
> URL: https://issues.apache.org/jira/browse/BOOKKEEPER-62
> Project: Bookkeeper
> Issue Type: Bug
> Reporter: Sijie Guo
> Assignee: Benjamin Reed
> Priority: Blocker
> Fix For: 4.0.0
>
> Attachments: BOOKKEEPER-62.diff, BOOKKEEPER-62.diff,
> BOOKKEEPER-62.patch
>
>
> bookie tries to extract ledger ids from entry loggers during starting up. if
> some records corrupted, an IOException is thrown out.
> in extractLedgersFromEntryLogs function:
> line 459:
> int rc = bc.read(buff, pos);
> if (rc != data.length) {
> throw new IOException("Short read for entryLog " +
> entryLogId + "@" + pos + "(" + rc + "!="
> + data.length + ")");
> }
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira