You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-commits@hadoop.apache.org by sh...@apache.org on 2011/12/28 21:58:33 UTC

svn commit: r1225333 - in /hadoop/common/branches/branch-0.22/hdfs: CHANGES.txt src/java/org/apache/hadoop/hdfs/server/namenode/FSImage.java src/test/hdfs/org/apache/hadoop/hdfs/server/namenode/TestBackupNode.java

Author: shv
Date: Wed Dec 28 20:58:32 2011
New Revision: 1225333

URL: http://svn.apache.org/viewvc?rev=1225333&view=rev
Log:
HDFS-1910. NameNdoe should not save fsimage twice. Contributed by Konstantin Shvachko.

Modified:
    hadoop/common/branches/branch-0.22/hdfs/CHANGES.txt
    hadoop/common/branches/branch-0.22/hdfs/src/java/org/apache/hadoop/hdfs/server/namenode/FSImage.java
    hadoop/common/branches/branch-0.22/hdfs/src/test/hdfs/org/apache/hadoop/hdfs/server/namenode/TestBackupNode.java

Modified: hadoop/common/branches/branch-0.22/hdfs/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.22/hdfs/CHANGES.txt?rev=1225333&r1=1225332&r2=1225333&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.22/hdfs/CHANGES.txt (original)
+++ hadoop/common/branches/branch-0.22/hdfs/CHANGES.txt Wed Dec 28 20:58:32 2011
@@ -12,6 +12,8 @@ Release 0.22.1 - Unreleased
 
   BUG FIXES
 
+    HDFS-1910. NameNdoe should not save fsimage twice. (shv)
+
 Release 0.22.0 - 2011-11-29
 
   INCOMPATIBLE CHANGES

Modified: hadoop/common/branches/branch-0.22/hdfs/src/java/org/apache/hadoop/hdfs/server/namenode/FSImage.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.22/hdfs/src/java/org/apache/hadoop/hdfs/server/namenode/FSImage.java?rev=1225333&r1=1225332&r2=1225333&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.22/hdfs/src/java/org/apache/hadoop/hdfs/server/namenode/FSImage.java (original)
+++ hadoop/common/branches/branch-0.22/hdfs/src/java/org/apache/hadoop/hdfs/server/namenode/FSImage.java Wed Dec 28 20:58:32 2011
@@ -1421,7 +1421,7 @@ public class FSImage extends Storage {
   void rollFSImage(CheckpointSignature sig, 
       boolean renewCheckpointTime) throws IOException {
     sig.validateStorageInfo(this);
-    rollFSImage(true);
+    rollFSImage(renewCheckpointTime);
   }
 
   private void rollFSImage(boolean renewCheckpointTime)

Modified: hadoop/common/branches/branch-0.22/hdfs/src/test/hdfs/org/apache/hadoop/hdfs/server/namenode/TestBackupNode.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.22/hdfs/src/test/hdfs/org/apache/hadoop/hdfs/server/namenode/TestBackupNode.java?rev=1225333&r1=1225332&r2=1225333&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.22/hdfs/src/test/hdfs/org/apache/hadoop/hdfs/server/namenode/TestBackupNode.java (original)
+++ hadoop/common/branches/branch-0.22/hdfs/src/test/hdfs/org/apache/hadoop/hdfs/server/namenode/TestBackupNode.java Wed Dec 28 20:58:32 2011
@@ -155,6 +155,18 @@ public class TestBackupNode {
           THIS_HOST + ":0");
       backup = startBackupNode(conf, op, 1);
       waitCheckpointDone(backup);
+
+      // Verify fstime files are identical in case of BN and not in case of CN
+      FSImage imageNN = cluster.getNameNode().getFSImage();
+      long cpTimeNN = imageNN.readCheckpointTime(imageNN.dirIterator().next());
+      FSImage imageBN = backup.getFSImage();
+      long cpTimeBN = imageBN.readCheckpointTime(imageBN.dirIterator().next());
+      assertTrue(
+          op == StartupOption.BACKUP ?
+              "NN should have the same checkpointTime as BN" :
+                "NN should have different checkpointTime from CN", 
+          op == StartupOption.BACKUP && cpTimeNN == cpTimeBN ||
+          op == StartupOption.CHECKPOINT && cpTimeNN != cpTimeBN);
     } catch(IOException e) {
       LOG.error("Error in TestBackupNode:", e);
       assertTrue(e.getLocalizedMessage(), false);