MAPREDUCE-2392. TaskTracker shutdown in the tests sometimes take 60s.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/mapreduce/trunk@1082703 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/CHANGES.txt b/CHANGES.txt
index 82b643a..c65657c 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -639,6 +639,9 @@
MAPREDUCE-2394. JUnit output format doesn't propagate into raid contrib
build. (todd)
+ MAPREDUCE-2392. TaskTracker shutdown in the tests sometimes take 60s.
+ (tomwhite)
+
Release 0.21.1 - Unreleased
NEW FEATURES
diff --git a/src/test/mapred/org/apache/hadoop/mapred/MiniMRCluster.java b/src/test/mapred/org/apache/hadoop/mapred/MiniMRCluster.java
index 415db0c..3762f84 100644
--- a/src/test/mapred/org/apache/hadoop/mapred/MiniMRCluster.java
+++ b/src/test/mapred/org/apache/hadoop/mapred/MiniMRCluster.java
@@ -689,7 +689,6 @@
tracker.shutdown();
Thread thread = taskTrackerThreadList.remove(id);
- thread.interrupt();
try {
thread.join();
@@ -752,7 +751,6 @@
TaskTrackerRunner taskTracker = taskTrackerList.get(idx);
Thread taskTrackerThread = taskTrackerThreadList.get(idx);
taskTracker.shutdown();
- taskTrackerThread.interrupt();
try {
taskTrackerThread.join();
} catch (InterruptedException ex) {
diff --git a/src/test/mapred/org/apache/hadoop/mapred/TestJobRetire.java b/src/test/mapred/org/apache/hadoop/mapred/TestJobRetire.java
index dfc5a44..ac68a15 100644
--- a/src/test/mapred/org/apache/hadoop/mapred/TestJobRetire.java
+++ b/src/test/mapred/org/apache/hadoop/mapred/TestJobRetire.java
@@ -176,6 +176,8 @@
*/
class WaitingTaskTracker extends TaskTracker {
+ private volatile boolean alive = true;
+
WaitingTaskTracker(JobConf conf) throws IOException, InterruptedException {
super(conf);
}
@@ -185,8 +187,16 @@
HeartbeatResponse response = super.transmitHeartBeat(now);
LOG.info("WaitingTaskTracker waiting");
// wait forever
- UtilsForTests.waitFor(Long.MAX_VALUE);
- throw new IOException ("WaitingTaskTracker interrupted. Bailing out");
+ while (alive) {
+ UtilsForTests.waitFor(1000);
+ }
+ throw new IOException ("WaitingTaskTracker shutdown. Bailing out");
+ }
+
+ @Override
+ public synchronized void shutdown() throws IOException {
+ alive = false;
+ super.shutdown();
}
}