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 to...@apache.org on 2007/03/22 09:14:50 UTC

svn commit: r521148 - in /lucene/hadoop/trunk: CHANGES.txt src/java/org/apache/hadoop/dfs/FSNamesystem.java

Author: tomwhite
Date: Thu Mar 22 01:14:49 2007
New Revision: 521148

URL: http://svn.apache.org/viewvc?view=rev&rev=521148
Log:
HADOOP-1135.  Fix bug in block report processing which may cause the namenode to delete blocks.  Contributed by Dhruba Borthakur.

Modified:
    lucene/hadoop/trunk/CHANGES.txt
    lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/FSNamesystem.java

Modified: lucene/hadoop/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/CHANGES.txt?view=diff&rev=521148&r1=521147&r2=521148
==============================================================================
--- lucene/hadoop/trunk/CHANGES.txt (original)
+++ lucene/hadoop/trunk/CHANGES.txt Thu Mar 22 01:14:49 2007
@@ -1,6 +1,12 @@
 Hadoop Change Log
 
 
+Trunk (unreleased changes)
+
+ 1. HADOOP-1135.  Fix bug in block report processing which may cause
+    the namenode to delete blocks.  (Dhruba Borthakur via tomwhite)
+
+
 Release 0.12.1 - 2007-03-17
 
  1. HADOOP-1035.  Fix a StackOverflowError in FSDataSet.

Modified: lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/FSNamesystem.java
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/FSNamesystem.java?view=diff&rev=521148&r1=521147&r2=521148
==============================================================================
--- lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/FSNamesystem.java (original)
+++ lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/FSNamesystem.java Thu Mar 22 01:14:49 2007
@@ -2051,14 +2051,14 @@
             // they are added to recentInvalidateSets and will be sent out
             // thorugh succeeding heartbeat responses.
             //
-            if (obsolete.size() > FSConstants.BLOCK_INVALIDATE_CHUNK) {
+            if (! dir.isValidBlock(b) && ! pendingCreateBlocks.contains(b)) {
+              if (obsolete.size() > FSConstants.BLOCK_INVALIDATE_CHUNK) {
                 addToInvalidates(b, node);
-            } else {
-                if (! dir.isValidBlock(b) && ! pendingCreateBlocks.contains(b)) {
-                  obsolete.add(b);
-                  NameNode.stateChangeLog.debug("BLOCK* NameSystem.processReport: "
+              } else {
+                obsolete.add(b);
+              }
+              NameNode.stateChangeLog.debug("BLOCK* NameSystem.processReport: "
                         +"ask "+nodeID.getName()+" to delete "+b.getBlockName() );
-                }
             }
         }
         return (Block[]) obsolete.toArray(new Block[obsolete.size()]);