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/11/01 20:24:33 UTC

svn commit: r1196229 - in /hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs: CHANGES.txt src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSafeMode.java

Author: shv
Date: Tue Nov  1 19:24:33 2011
New Revision: 1196229

URL: http://svn.apache.org/viewvc?rev=1196229&view=rev
Log:
HDFS-2002. Incorrect computation of needed blocks in getTurnOffTip(). Contributed by Plamen Jeliazkov.

Modified:
    hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
    hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
    hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSafeMode.java

Modified: hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt?rev=1196229&r1=1196228&r2=1196229&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt (original)
+++ hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt Tue Nov  1 19:24:33 2011
@@ -1760,6 +1760,9 @@ Release 0.22.0 - Unreleased
     HDFS-2452. OutOfMemoryError in DataXceiverServer takes down the DataNode
     (Uma Maheswara Rao via cos)
 
+    HDFS-2002. Incorrect computation of needed blocks in getTurnOffTip().
+    (Plamen Jeliazkov via shv)
+
 Release 0.21.1 - Unreleased
 
     HDFS-1466. TestFcHdfsSymlink relies on /tmp/test not existing. (eli)

Modified: hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java?rev=1196229&r1=1196228&r2=1196229&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java Tue Nov  1 19:24:33 2011
@@ -2833,6 +2833,9 @@ public class FSNamesystem implements Nam
     private SafeModeInfo(Configuration conf) {
       this.threshold = conf.getFloat(DFS_NAMENODE_SAFEMODE_THRESHOLD_PCT_KEY,
           DFS_NAMENODE_SAFEMODE_THRESHOLD_PCT_DEFAULT);
+      if(threshold > 1.0) {
+        LOG.warn("The threshold value should't be greater than 1, threshold: " + threshold);
+      }
       this.datanodeThreshold = conf.getInt(
         DFS_NAMENODE_SAFEMODE_MIN_DATANODES_KEY,
         DFS_NAMENODE_SAFEMODE_MIN_DATANODES_DEFAULT);
@@ -3120,7 +3123,7 @@ public class FSNamesystem implements Nam
           msg += String.format(
             "The reported blocks %d needs additional %d"
             + " blocks to reach the threshold %.4f of total blocks %d.",
-            blockSafe, (blockThreshold - blockSafe), threshold, blockTotal);
+            blockSafe, (blockThreshold - blockSafe) + 1, threshold, blockTotal);
         }
         if (numLive < datanodeThreshold) {
           if (!"".equals(msg)) {
@@ -3129,7 +3132,7 @@ public class FSNamesystem implements Nam
           msg += String.format(
             "The number of live datanodes %d needs an additional %d live "
             + "datanodes to reach the minimum number %d.",
-            numLive, datanodeThreshold - numLive, datanodeThreshold);
+            numLive, (datanodeThreshold - numLive) + 1 , datanodeThreshold);
         }
         msg += " " + leaveMsg;
       } else {

Modified: hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSafeMode.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSafeMode.java?rev=1196229&r1=1196228&r2=1196229&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSafeMode.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSafeMode.java Tue Nov  1 19:24:33 2011
@@ -58,8 +58,9 @@ public class TestSafeMode {
 
       String tipMsg = cluster.getNamesystem().getSafeModeTip();
       assertTrue("Safemode tip message looks right",
-                 tipMsg.contains("The number of live datanodes 0 needs an " +
-                                 "additional 1 live"));
+                 tipMsg.contains("The number of live datanodes 0 needs an additional " +
+                                 "2 live datanodes to reach the minimum number 1. " +
+                                 "Safe mode will be turned off automatically."));
 
       // Start a datanode
       cluster.startDataNodes(conf, 1, true, null, null);