[ 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