[
https://issues.apache.org/jira/browse/HDFS-3335?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Colin Patrick McCabe updated HDFS-3335:
---------------------------------------
Attachment: HDFS-3335.002.patch
* fix the strategy a bit.
Previously, the goal was to special-case in-progress logs. However, after
recoverUnfinalizedSegments has run, there are no more in-progress logs. Any
formerly in-progress logs are renamed and given a final transaction ID.
So, to avoid choking on garbage at the end of the log, simply make sure that we
don't read past the final transaction ID of the stream.
* add unit tests
* FSEditLogOp#readOp: must check for runtime exceptions in order to be robust.
> check for edit log corruption at the end of the log
> ---------------------------------------------------
>
> Key: HDFS-3335
> URL: https://issues.apache.org/jira/browse/HDFS-3335
> Project: Hadoop HDFS
> Issue Type: Improvement
> Affects Versions: 0.23.0
> Reporter: Colin Patrick McCabe
> Assignee: Colin Patrick McCabe
> Attachments: HDFS-3335-b1.001.patch, HDFS-3335-b1.002.patch,
> HDFS-3335-b1.003.patch, HDFS-3335.001.patch, HDFS-3335.002.patch
>
>
> Even after encountering an OP_INVALID, we should check the end of the edit
> log to make sure that it contains no more edits.
> This will catch things like rare race conditions or log corruptions that
> would otherwise remain undetected. They will got from being silent data loss
> scenarios to being cases that we can detect and fix.
> Using recovery mode, we can choose to ignore the end of the log if necessary.
--
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