[ 
https://issues.apache.org/jira/browse/HDFS-2991?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13214966#comment-13214966
 ] 

Todd Lipcon commented on HDFS-2991:
-----------------------------------

Good catch on #1.

bq. You do not need to logOpenFile() in case of file creation. It is already 
done in dir.addFile(). Would be very confusing to journal the same transaction 
twice.
The patch actually removes logOpenFile() from {{dir.addFile}} so that the 
logging for both cases are done in the same function. Otherwise I found the 
code harder to follow. The only caller to {{dir.addFile}} was from here, so I 
think that's safe.

bq. Not wild about changing LAYOUT_VERSION to overcome the bug. Should we 
rather come up with a repair tool? Should be easy to implement with OIV.
I actually did not change the LAYOUT_VERSION for just this reason. I just made 
it so that the workaround code only triggers when it's an older version. Does 
that make sense?
                
> failure to load edits: ClassCastException
> -----------------------------------------
>
>                 Key: HDFS-2991
>                 URL: https://issues.apache.org/jira/browse/HDFS-2991
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: name-node
>    Affects Versions: 0.24.0, 0.23.1
>            Reporter: Todd Lipcon
>            Assignee: Todd Lipcon
>            Priority: Blocker
>         Attachments: hdfs-2991.txt, image-with-buggy-append.tgz
>
>
> In doing scale testing of trunk at r1291606, I hit the following:
> java.io.IOException: Error replaying edit log at offset 1354251
> Recent opcode offsets: 1350014 1350176 1350312 1354251
>         at 
> org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.loadEditRecords(FSEditLogLoader.java:418)
>         at 
> org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.loadFSEdits(FSEditLogLoader.java:93)
>         at 
> org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.loadFSEdits(FSEditLogLoader.java:79)
> ...
> Caused by: java.lang.ClassCastException: 
> org.apache.hadoop.hdfs.server.namenode.INodeFile cannot be cast to 
> org.apache.hadoop.hdfs.server.namenode.INodeFileUnderConstruction
>         at 
> org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.loadEditRecords(FSEditLogLoader.java:213)
>         ... 13 more

--
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