瀏覽代碼

HDFS-2280. BackupNode fails with MD5 checksum Exception. Contributed by Konstantin Shvachko.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.22@1165944 13f79535-47bb-0310-9956-ffa450edef68
Konstantin Shvachko 13 年之前
父節點
當前提交
9d5571c693
共有 2 個文件被更改,包括 5 次插入0 次删除
  1. 2 0
      hdfs/CHANGES.txt
  2. 3 0
      hdfs/src/java/org/apache/hadoop/hdfs/server/namenode/BackupStorage.java

+ 2 - 0
hdfs/CHANGES.txt

@@ -619,6 +619,8 @@ Release 0.22.0 - Unreleased
     HDFS-2281. NPE in checkpoint during processIOError().
     HDFS-2281. NPE in checkpoint during processIOError().
     (Uma Maheswara Rao G via shv)
     (Uma Maheswara Rao G via shv)
 
 
+    HDFS-2280. BackupNode fails with MD5 checksum Exception. (shv)
+
 Release 0.21.1 - Unreleased
 Release 0.21.1 - Unreleased
 
 
   IMPROVEMENTS
   IMPROVEMENTS

+ 3 - 0
hdfs/src/java/org/apache/hadoop/hdfs/server/namenode/BackupStorage.java

@@ -133,6 +133,7 @@ public class BackupStorage extends FSImage {
       // rename current to lastcheckpoint.tmp
       // rename current to lastcheckpoint.tmp
       moveCurrent(sd);
       moveCurrent(sd);
     }
     }
+    this.imageDigest = null;
   }
   }
 
 
   /**
   /**
@@ -156,6 +157,8 @@ public class BackupStorage extends FSImage {
       StorageDirectory sdEdits = itEdits.next();
       StorageDirectory sdEdits = itEdits.next();
       getFSDirectoryRootLock().writeLock();
       getFSDirectoryRootLock().writeLock();
       try { // load image under rootDir lock
       try { // load image under rootDir lock
+        // make sure image checksum is verified against the expected value
+        imageDigest = sig.imageDigest; 
         loadFSImage(FSImage.getImageFile(sdName, NameNodeFile.IMAGE));
         loadFSImage(FSImage.getImageFile(sdName, NameNodeFile.IMAGE));
       } finally {
       } finally {
         getFSDirectoryRootLock().writeUnlock();
         getFSDirectoryRootLock().writeUnlock();