You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ji...@apache.org on 2011/09/07 02:24:37 UTC

svn commit: r1165939 - in /hadoop/common/branches/branch-0.20-security: CHANGES.txt src/hdfs/org/apache/hadoop/hdfs/server/namenode/DatanodeDescriptor.java src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java

Author: jitendra
Date: Wed Sep  7 00:24:36 2011
New Revision: 1165939

URL: http://svn.apache.org/viewvc?rev=1165939&view=rev
Log:
HDFS-2309. TestRenameWhileOpen fails.

Modified:
    hadoop/common/branches/branch-0.20-security/CHANGES.txt
    hadoop/common/branches/branch-0.20-security/src/hdfs/org/apache/hadoop/hdfs/server/namenode/DatanodeDescriptor.java
    hadoop/common/branches/branch-0.20-security/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java

Modified: hadoop/common/branches/branch-0.20-security/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.20-security/CHANGES.txt?rev=1165939&r1=1165938&r2=1165939&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.20-security/CHANGES.txt (original)
+++ hadoop/common/branches/branch-0.20-security/CHANGES.txt Wed Sep  7 00:24:36 2011
@@ -97,6 +97,8 @@ Release 0.20.205.0 - unreleased
     HADOOP-7596. Makes packaging of 64-bit jsvc possible. Has other
     bug fixes to do with packaging. (Eric Yang via ddas) 
 
+    HDFS-2309. TestRenameWhileOpen fails. (jitendra)
+
   IMPROVEMENTS
 
     MAPREDUCE-2187. Reporter sends progress during sort/merge. (Anupam Seth via

Modified: hadoop/common/branches/branch-0.20-security/src/hdfs/org/apache/hadoop/hdfs/server/namenode/DatanodeDescriptor.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.20-security/src/hdfs/org/apache/hadoop/hdfs/server/namenode/DatanodeDescriptor.java?rev=1165939&r1=1165938&r2=1165939&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.20-security/src/hdfs/org/apache/hadoop/hdfs/server/namenode/DatanodeDescriptor.java (original)
+++ hadoop/common/branches/branch-0.20-security/src/hdfs/org/apache/hadoop/hdfs/server/namenode/DatanodeDescriptor.java Wed Sep  7 00:24:36 2011
@@ -118,6 +118,9 @@ public class DatanodeDescriptor extends 
   private long lastBlocksScheduledRollTime = 0;
   private static final int BLOCKS_SCHEDULED_ROLL_INTERVAL = 600*1000; //10min
   
+  // Set to false after processing first block report
+  private boolean firstBlockReport = true; 
+  
   /** Default constructor */
   public DatanodeDescriptor() {}
   
@@ -561,4 +564,12 @@ public class DatanodeDescriptor extends 
   public void setBalancerBandwidth(long bandwidth) {
     this.bandwidth = bandwidth;
   }
+
+  boolean firstBlockReport() {
+    return firstBlockReport;
+  }
+  
+  void processedBlockReport() {
+    firstBlockReport = false;
+  }
 }

Modified: hadoop/common/branches/branch-0.20-security/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.20-security/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java?rev=1165939&r1=1165938&r2=1165939&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.20-security/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java (original)
+++ hadoop/common/branches/branch-0.20-security/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java Wed Sep  7 00:24:36 2011
@@ -84,7 +84,6 @@ import org.apache.hadoop.hdfs.server.com
 import org.apache.hadoop.hdfs.server.common.HdfsConstants.StartupOption;
 import org.apache.hadoop.hdfs.server.common.Storage;
 import org.apache.hadoop.hdfs.server.common.UpgradeStatusReport;
-import org.apache.hadoop.hdfs.server.common.HdfsConstants.StartupOption;
 import org.apache.hadoop.hdfs.server.namenode.BlocksMap.BlockInfo;
 import org.apache.hadoop.hdfs.server.namenode.LeaseManager.Lease;
 import org.apache.hadoop.hdfs.server.namenode.UnderReplicatedBlocks.BlockIterator;
@@ -3332,7 +3331,7 @@ public class FSNamesystem implements FSC
     
     // To minimize startup time, we discard any second (or later) block reports
     // that we receive while still in startup phase.
-    if (isInStartupSafeMode() && node.numBlocks() > 0) {
+    if (isInStartupSafeMode() && !node.firstBlockReport()) {
       NameNode.stateChangeLog.info("BLOCK* NameSystem.processReport: "
           + "discarded non-initial block report from " + nodeID.getName()
           + " because namenode still in startup phase");
@@ -3365,6 +3364,7 @@ public class FSNamesystem implements FSC
     NameNode.stateChangeLog.info("*BLOCK* NameSystem.processReport: from "
         + nodeID.getName() + ", blocks: " + newReport.getNumberOfBlocks()
         + ", processing time: " + (endTime - startTime) + " msecs");
+    node.processedBlockReport();
   }
 
   /**
@@ -3867,9 +3867,6 @@ public class FSNamesystem implements FSC
       throw new DisallowedDatanodeException(node);
     }
 
-    // decrement number of blocks scheduled to this datanode.
-    node.decBlocksScheduled();
-    
     // get the deletion hint node
     DatanodeDescriptor delHintNode = null;
     if(delHint!=null && delHint.length()!=0) {
@@ -3887,6 +3884,9 @@ public class FSNamesystem implements FSC
     // 
     pendingReplications.remove(block);
     addStoredBlock(block, node, delHintNode );
+    
+    // decrement number of blocks scheduled to this datanode.
+    node.decBlocksScheduled();    
   }
 
   public long getMissingBlocksCount() {