[ 
https://issues.apache.org/jira/browse/HDFS-2991?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Todd Lipcon updated HDFS-2991:
------------------------------

    Attachment: hdfs-2991.txt
                image-with-buggy-append.tgz

Attached patch fixes the issue and adds two tests. The first verifies that the 
underlying issue is fixed (ie that OP_ADD is always logged when the file is 
re-opened). The second verifies that we can continue to read the "broken" logs 
generated by prior versions. It depends on the attached tarball which goes in 
src/test/resources -- this tarball was created as described above using 
0.23.1-rc2 (which displays the bug).

I also set up the workaround code so that, if  future versions have an issue 
like this, we'll throw the exception (ie the workaround only runs for known 
buggy versions). I didn't bump the log version, though, since the format itself 
has not changed.
                
> 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