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 cu...@apache.org on 2007/05/08 20:52:04 UTC

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

Author: cutting
Date: Tue May  8 11:52:03 2007
New Revision: 536296

URL: http://svn.apache.org/viewvc?view=rev&rev=536296
Log:
HADOOP-1255.  Fix a bug where the namenode falls into an infinite loop trying to remove a dead node.  Contributed by Hairong.

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=536296&r1=536295&r2=536296
==============================================================================
--- lucene/hadoop/trunk/CHANGES.txt (original)
+++ lucene/hadoop/trunk/CHANGES.txt Tue May  8 11:52:03 2007
@@ -362,6 +362,9 @@
 
 107. HADOOP-1310.  Fix unchecked warnings in aggregate code.  (tomwhite)
 
+108. HADOOP-1255.  Fix a bug where the namenode falls into an infinite
+     loop trying to remove a dead node.  (Hairong Kuang via cutting)
+
 
 Release 0.12.3 - 2007-04-06
 

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=536296&r1=536295&r2=536296
==============================================================================
--- lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/FSNamesystem.java (original)
+++ lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/FSNamesystem.java Tue May  8 11:52:03 2007
@@ -1494,10 +1494,12 @@
         
       // also treat the registration message as a heartbeat
       synchronized(heartbeats) {
-        heartbeats.add(nodeS);
-        //update its timestamp
-        nodeS.updateHeartbeat(0L, 0L, 0);
-        nodeS.isAlive = true;
+        if( !heartbeats.contains(nodeS)) {
+          heartbeats.add(nodeS);
+          //update its timestamp
+          nodeS.updateHeartbeat(0L, 0L, 0);
+          nodeS.isAlive = true;
+        }
       }
       return;
     }