diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppImpl.java index f1d55a4..bafaf8f 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppImpl.java @@ -820,10 +820,29 @@ public void recover(RMState state) { // send the ATS create Event sendATSCreateEvent(this, this.startTime); - for(int i=0; i recoveredAppAttempts + = recoveredApp0.getAppAttempts(); + Assert.assertEquals(3, recoveredAppAttempts.size()); + Assert.assertEquals(RMAppAttemptState.FAILED, + recoveredAppAttempts.get( + am0.getApplicationAttemptId()).getAppAttemptState()); + Assert.assertEquals(RMAppAttemptState.FAILED, + recoveredAppAttempts.get( + am2.getApplicationAttemptId()).getAppAttemptState()); + Assert.assertEquals(RMAppAttemptState.LAUNCHED, + recoveredAppAttempts.get( + am3.getApplicationAttemptId()).getAppAttemptState()); + } + + private MockAM launchAndFailAM(RMApp app, MockRM rm, MockNM nm) + throws Exception { + MockAM am = launchAM(app, rm, nm); + nm.nodeHeartbeat(am.getApplicationAttemptId(), 1, ContainerState.COMPLETE); + am.waitForState(RMAppAttemptState.FAILED); + return am; + } }