YARN-5317. testAMRestartNotLostContainerCompleteMsg may fail. Contributed by sandflee
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/10b704c5 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/10b704c5 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/10b704c5 Branch: refs/heads/YARN-5355 Commit: 10b704c5946afe7bfd4a6be40192ce7ca745d817 Parents: 7705812 Author: Jason Lowe <[email protected]> Authored: Tue Jul 12 20:27:41 2016 +0000 Committer: Jason Lowe <[email protected]> Committed: Tue Jul 12 20:27:41 2016 +0000 ---------------------------------------------------------------------- .../apache/hadoop/yarn/server/resourcemanager/MockRM.java | 7 ++++++- .../applicationsmanager/TestAMRestart.java | 10 +++------- 2 files changed, 9 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/10b704c5/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/MockRM.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/MockRM.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/MockRM.java index 84fe7c0..a3e0f9a 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/MockRM.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/MockRM.java @@ -741,7 +741,12 @@ public class MockRM extends ResourceManager { return client.failApplicationAttempt(req); } - // from AMLauncher + /** + * recommend to use launchAM, or use sendAMLaunched like: + * 1, wait RMAppAttempt scheduled + * 2, send node heartbeat + * 3, sendAMLaunched + */ public MockAM sendAMLaunched(ApplicationAttemptId appAttemptId) throws Exception { MockAM am = new MockAM(getRMContext(), masterService, appAttemptId); http://git-wip-us.apache.org/repos/asf/hadoop/blob/10b704c5/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestAMRestart.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestAMRestart.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestAMRestart.java index bc09b37..03a9645 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestAMRestart.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/applicationsmanager/TestAMRestart.java @@ -149,12 +149,11 @@ public class TestAMRestart { Assert.assertFalse(newAttemptId.equals(am1.getApplicationAttemptId())); // launch the new AM - RMAppAttempt attempt2 = app1.getCurrentAppAttempt(); - nm1.nodeHeartbeat(true); - MockAM am2 = rm1.sendAMLaunched(attempt2.getAppAttemptId()); + MockAM am2 = rm1.launchAM(app1, rm1, nm1); RegisterApplicationMasterResponse registerResponse = am2.registerAppAttempt(); + // Assert two containers are running: container2 and container3; Assert.assertEquals(2, registerResponse.getContainersFromPreviousAttempts() .size()); @@ -837,10 +836,7 @@ public class TestAMRestart { // launch the new AM RMAppAttempt attempt2 = app1.getCurrentAppAttempt(); - nm1.nodeHeartbeat(true); - MockAM am2 = rm1.sendAMLaunched(attempt2.getAppAttemptId()); - am2.registerAppAttempt(); - rm1.waitForState(app1.getApplicationId(), RMAppState.RUNNING); + MockAM am2 = rm1.launchAndRegisterAM(app1, rm1, nm1); // whether new AM could get container complete msg AllocateResponse allocateResponse = am2.allocate( --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
