From 8572e7b4229df4d7c4362aec2a116db66ab01218 Mon Sep 17 00:00:00 2001 From: Prabhu Joseph Date: Sun, 8 Sep 2019 19:40:01 +0530 Subject: [PATCH] YARN-9820. Ignore APP_UPDATE_SAVED event when app is in ACCEPTED state. --- .../yarn/server/resourcemanager/rmapp/RMAppImpl.java | 3 +++ .../server/resourcemanager/rmapp/TestRMAppTransitions.java | 14 ++++++++++++++ 2 files changed, 17 insertions(+) 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 4ff7aea..ac7de93 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 @@ -281,6 +281,9 @@ .addTransition(RMAppState.ACCEPTED, RMAppState.ACCEPTED, RMAppEventType.ATTEMPT_LAUNCHED, new AttemptLaunchedTransition()) + // ignorable transitions + .addTransition(RMAppState.ACCEPTED, RMAppState.ACCEPTED, + RMAppEventType.APP_UPDATE_SAVED) // Transitions from RUNNING state .addTransition(RMAppState.RUNNING, RMAppState.RUNNING, diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestRMAppTransitions.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestRMAppTransitions.java index 57bdac4..25fa4fe 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestRMAppTransitions.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestRMAppTransitions.java @@ -1075,6 +1075,20 @@ public void testAppAtFinishingIgnoreKill() throws Exception { assertAppState(RMAppState.FINISHING, application); } + @Test + public void testAppAtAcceptedIgnoreAppUpdateSaved() throws IOException { + LOG.info("--- START: testAppAtAcceptedIgnoreAppUpdateSaved ---"); + + RMApp application = testCreateAppAccepted(null); + // ACCEPTED => ACCEPTED event RMAppEventType.APP_UPDATE_SAVED + RMAppEvent event = + new RMAppEvent(application.getApplicationId(), + RMAppEventType.APP_UPDATE_SAVED); + application.handle(event); + rmDispatcher.await(); + assertAppState(RMAppState.ACCEPTED, application); + } + // While App is at FINAL_SAVING, Attempt_Finished event may come before // App_Saved event, we stay on FINAL_SAVING on Attempt_Finished event // and then directly jump from FINAL_SAVING to FINISHED state on App_Saved -- 2.7.4 (Apple Git-66)