[ 
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

        

Reply via email to