Repository: hadoop Updated Branches: refs/heads/trunk 4bd45f54e -> af508605a
MAPREDUCE-4784. TestRecovery occasionally fails. Contributed by Haibo Chen Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/af508605 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/af508605 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/af508605 Branch: refs/heads/trunk Commit: af508605a9edc126c170160291dbc2fe58b66dea Parents: 4bd45f5 Author: Jason Lowe <jl...@apache.org> Authored: Tue Aug 30 13:59:57 2016 +0000 Committer: Jason Lowe <jl...@apache.org> Committed: Tue Aug 30 13:59:57 2016 +0000 ---------------------------------------------------------------------- .../hadoop/mapreduce/v2/app/TestRecovery.java | 27 +++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/af508605/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 3ede2e9..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. * @@ -1199,11 +1218,7 @@ public class TestRecovery { TaskAttempt task2Attempt = mapTask2.getAttempts().values().iterator().next(); // wait for the second task attempt to be assigned. - GenericTestUtils.waitFor(new Supplier<Boolean>() { - @Override public Boolean get() { - return task1Attempt2.getAssignedContainerID() != null; - } - }, 10, 10000); + waitForContainerAssignment(task1Attempt2); ContainerId t1a2contId = task1Attempt2.getAssignedContainerID(); LOG.info(t1a2contId.toString()); --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org