Author: cutting Date: Wed Jun 7 12:29:20 2006 New Revision: 412494 URL: http://svn.apache.org/viewvc?rev=412494&view=rev Log: HADOOP-285. Fix DFS datanodes to be able to re-join the cluster after the connection to the namenode is lost. Contributed by Owen.
Modified: lucene/hadoop/trunk/CHANGES.txt lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DataNode.java Modified: lucene/hadoop/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/CHANGES.txt?rev=412494&r1=412493&r2=412494&view=diff ============================================================================== --- lucene/hadoop/trunk/CHANGES.txt (original) +++ lucene/hadoop/trunk/CHANGES.txt Wed Jun 7 12:29:20 2006 @@ -17,6 +17,9 @@ 4. HADOOP-240. DFS's mkdirs() implementation no longer logs a warning when the directory already exists. (Hairong Kuang via cutting) + 5. HADOOP-285. Fix DFS datanodes to be able to re-join the cluster + after the connection to the namenode is lost. (omalley via cutting) + Release 0.3.1 - 2006-06-05 Modified: lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DataNode.java URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DataNode.java?rev=412494&r1=412493&r2=412494&view=diff ============================================================================== --- lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DataNode.java (original) +++ lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DataNode.java Wed Jun 7 12:29:20 2006 @@ -208,9 +208,7 @@ * forever calling remote NameNode functions. */ public void offerService() throws Exception { - // start dataXceiveServer - dataXceiveServer.start(); - + long lastHeartbeat = 0, lastBlockReport = 0; LOG.info("using BLOCKREPORT_INTERVAL of " + blockReportInterval + "msec"); @@ -328,11 +326,6 @@ handleDiskError(e.getMessage()); } - // wait for dataXceiveServer to terminate - try { - this.dataXceiveServer.join(); - } catch (InterruptedException ie) { - } } // offerService /** @@ -818,6 +811,10 @@ */ public void run() { LOG.info("Starting DataNode in: "+data.data); + + // start dataXceiveServer + dataXceiveServer.start(); + while (shouldRun) { try { offerService(); @@ -832,7 +829,14 @@ } } } - LOG.info("Finishing DataNode in: "+data.data); + + // wait for dataXceiveServer to terminate + try { + this.dataXceiveServer.join(); + } catch (InterruptedException ie) { + } + + LOG.info("Finishing DataNode in: "+data.data); } /** Start datanode daemons.