Author: hairong
Date: Wed Jan 21 13:57:12 2009
New Revision: 736429
URL: http://svn.apache.org/viewvc?rev=736429&view=rev
Log:
Merge -r 736425:736426 to move the change of HADOOP-5009 from main t0 branch
0.20.
Modified:
hadoop/core/branches/branch-0.20/ (props changed)
hadoop/core/branches/branch-0.20/CHANGES.txt (contents, props changed)
hadoop/core/branches/branch-0.20/src/hdfs/org/apache/hadoop/hdfs/server/datanode/DataBlockScanner.java
hadoop/core/branches/branch-0.20/src/hdfs/org/apache/hadoop/hdfs/server/datanode/DataNode.java
Propchange: hadoop/core/branches/branch-0.20/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Jan 21 13:57:12 2009
@@ -1,2 +1,2 @@
/hadoop/core/branches/branch-0.19:713112
-/hadoop/core/trunk:727001,727117,727191,727212,727217,727228,727255,727869,728187,729052,729987,732385,732572,732777,732838,732869,733887,734870,734916
+/hadoop/core/trunk:727001,727117,727191,727212,727217,727228,727255,727869,728187,729052,729987,732385,732572,732777,732838,732869,733887,734870,734916,736426
Modified: hadoop/core/branches/branch-0.20/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.20/CHANGES.txt?rev=736429&r1=736428&r2=736429&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.20/CHANGES.txt (original)
+++ hadoop/core/branches/branch-0.20/CHANGES.txt Wed Jan 21 13:57:12 2009
@@ -619,6 +619,9 @@
HADOOP-4967. Fixes a race condition in the JvmManager to do with killing
tasks. (ddas)
+ HADOOP-5009. DataNode#shutdown sometimes leaves data block scanner
+ verification log unclosed. (hairong)
+
Release 0.19.0 - 2008-11-18
INCOMPATIBLE CHANGES
Propchange: hadoop/core/branches/branch-0.20/CHANGES.txt
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Jan 21 13:57:12 2009
@@ -1,3 +1,3 @@
/hadoop/core/branches/branch-0.18/CHANGES.txt:727226
/hadoop/core/branches/branch-0.19/CHANGES.txt:713112
-/hadoop/core/trunk/CHANGES.txt:727001,727117,727191,727212,727228,727255,727869,728187,729052,729987,732385,732572,732777,732838,732869,733887,734870,734916,735082
+/hadoop/core/trunk/CHANGES.txt:727001,727117,727191,727212,727228,727255,727869,728187,729052,729987,732385,732572,732777,732838,732869,733887,734870,734916,735082,736426
Modified:
hadoop/core/branches/branch-0.20/src/hdfs/org/apache/hadoop/hdfs/server/datanode/DataBlockScanner.java
URL:
http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.20/src/hdfs/org/apache/hadoop/hdfs/server/datanode/DataBlockScanner.java?rev=736429&r1=736428&r2=736429&view=diff
==============================================================================
---
hadoop/core/branches/branch-0.20/src/hdfs/org/apache/hadoop/hdfs/server/datanode/DataBlockScanner.java
(original)
+++
hadoop/core/branches/branch-0.20/src/hdfs/org/apache/hadoop/hdfs/server/datanode/DataBlockScanner.java
Wed Jan 21 13:57:12 2009
@@ -517,6 +517,7 @@
verificationLog.updateCurNumLines();
}
+ try {
// update verification times from the verificationLog.
while (logReader != null && logReader.hasNext()) {
if (!datanode.shouldRun || Thread.interrupted()) {
@@ -527,6 +528,9 @@
updateBlockInfo(entry);
}
}
+ } finally {
+ IOUtils.closeStream(logReader);
+ }
/* Initially spread the block reads over half of
* MIN_SCAN_PERIOD so that we don't keep scanning the
@@ -590,12 +594,12 @@
} catch (InterruptedException ignored) {}
}
}
- shutdown();
} catch (RuntimeException e) {
LOG.warn("RuntimeException during DataBlockScanner.run() : " +
StringUtils.stringifyException(e));
throw e;
} finally {
+ shutdown();
LOG.info("Exiting DataBlockScanner thread.");
}
}
@@ -783,8 +787,9 @@
//This reads the current file and updates the count.
void updateCurNumLines() {
int count = 0;
+ Reader it = null;
try {
- for(Reader it = new Reader(true); it.hasNext(); count++) {
+ for(it = new Reader(true); it.hasNext(); count++) {
it.next();
}
} catch (IOException e) {
@@ -793,6 +798,7 @@
synchronized (this) {
curNumLines = count;
}
+ IOUtils.closeStream(it);
}
}
Modified:
hadoop/core/branches/branch-0.20/src/hdfs/org/apache/hadoop/hdfs/server/datanode/DataNode.java
URL:
http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.20/src/hdfs/org/apache/hadoop/hdfs/server/datanode/DataNode.java?rev=736429&r1=736428&r2=736429&view=diff
==============================================================================
---
hadoop/core/branches/branch-0.20/src/hdfs/org/apache/hadoop/hdfs/server/datanode/DataNode.java
(original)
+++
hadoop/core/branches/branch-0.20/src/hdfs/org/apache/hadoop/hdfs/server/datanode/DataNode.java
Wed Jan 21 13:57:12 2009
@@ -599,10 +599,13 @@
if(upgradeManager != null)
upgradeManager.shutdownUpgrade();
- if (blockScanner != null)
- blockScanner.shutdown();
- if (blockScannerThread != null)
+ if (blockScannerThread != null) {
blockScannerThread.interrupt();
+ try {
+ blockScannerThread.join(3600000L); // wait for at most 1 hour
+ } catch (InterruptedException ie) {
+ }
+ }
if (storage != null) {
try {
this.storage.unlockAll();