Repository: hadoop
Updated Branches:
refs/heads/branch-2 320be1b3c -> f70f522e8
MAPREDUCE-4784. TestRecovery occasionally fails. Contributed by Haibo Chen
(cherry picked from commit af508605a9edc126c170160291dbc2fe58b66dea)
Conflicts:
hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestRecovery.java
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/f70f522e
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/f70f522e
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/f70f522e
Branch: refs/heads/branch-2
Commit: f70f522e805b2d8dd49bae07fc65d37a78ad2fca
Parents: 320be1b
Author: Jason Lowe <[email protected]>
Authored: Tue Aug 30 14:09:14 2016 +0000
Committer: Jason Lowe <[email protected]>
Committed: Tue Aug 30 14:09:14 2016 +0000
----------------------------------------------------------------------
.../hadoop/mapreduce/v2/app/TestRecovery.java | 28 +++++++++++++++-----
1 file changed, 21 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/f70f522e/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestRecovery.java
----------------------------------------------------------------------
diff --git
a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestRecovery.java
b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestRecovery.java
index b80e126..9d5f0ae 100644
---
a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestRecovery.java
+++
b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestRecovery.java
@@ -35,6 +35,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.TimeoutException;
import org.junit.Assert;
import org.apache.commons.logging.Log;
@@ -180,7 +181,10 @@ public class TestRecovery {
Iterator<TaskAttempt> itr = mapTask1.getAttempts().values().iterator();
itr.next();
TaskAttempt task1Attempt2 = itr.next();
-
+
+ // wait for the second task attempt to be assigned.
+ waitForContainerAssignment(task1Attempt2);
+
// This attempt will automatically fail because of the way
ContainerLauncher
// is setup
// This attempt 'disappears' from JobHistory and so causes MAPREDUCE-3846
@@ -318,6 +322,21 @@ public class TestRecovery {
}
/**
+ * Wait for a task attempt to be assigned a container to.
+ * @param task1Attempt2 the task attempt to wait for its container assignment
+ * @throws TimeoutException if times out
+ * @throws InterruptedException if interrupted
+ */
+ public static void waitForContainerAssignment(final TaskAttempt
task1Attempt2)
+ throws TimeoutException, InterruptedException {
+ GenericTestUtils.waitFor(new Supplier<Boolean>() {
+ @Override public Boolean get() {
+ return task1Attempt2.getAssignedContainerID() != null;
+ }
+ }, 10, 10000);
+ }
+
+ /**
* AM with 3 maps and 0 reduce. AM crashes after the first two tasks finishes
* and recovers completely and succeeds in the second generation.
*
@@ -1197,14 +1216,9 @@ public class TestRecovery {
TaskAttempt task1Attempt1 = t1it.next();
TaskAttempt task1Attempt2 = t1it.next();
TaskAttempt task2Attempt =
mapTask2.getAttempts().values().iterator().next();
- final TaskAttempt t2a = task2Attempt;
// wait for the second task attempt to be assigned.
- GenericTestUtils.waitFor(new Supplier<Boolean>() {
- @Override public Boolean get() {
- return t2a.getAssignedContainerID() != null;
- }
- }, 10, 10000);
+ waitForContainerAssignment(task1Attempt2);
ContainerId t1a2contId = task1Attempt2.getAssignedContainerID();
LOG.info(t1a2contId.toString());
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]