[
https://issues.apache.org/jira/browse/BOOKKEEPER-62?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13153007#comment-13153007
]
Ivan Kelly commented on BOOKKEEPER-62:
--------------------------------------
I've marked this as a blocker and moved to 4.0.0. We only need to deal with
(1), as (2) indicates a disk failure, and there's nothing we can do. The bookie
should be scrapped and a new bookie should replace it and recovery should be
run for the lost bookie.
I think solving this could be quite simple. If we create the entrylogger file
with a different name, such as <logid>.log-inprogress, and then rename it to
<logid>.log when we're done, the journal would then be able to complete the
recovery. EntryLogger.createLogId is what we'd need to change. We'd only need
to add 2-3 lines of code. Testing could just be a matter of manually corrupting
a log file and trying to start.
> 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: Ivan Kelly
> Priority: Blocker
> Fix For: 4.0.0
>
>
> 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