Browse Source

YARN-4520. Finished app info is unnecessarily persisted in NM state-store if container is acquired but not lunched on this node. Contributed by sandflee

Jian He 9 years ago
parent
commit
389a7fb33f

+ 3 - 0
hadoop-yarn-project/CHANGES.txt

@@ -1172,6 +1172,9 @@ Release 2.8.0 - UNRELEASED
 
     YARN-4592. Remove unused GetContainerStatus proto. (Chang Li via aajisaka)
 
+    YARN-4520. Finished app info is unnecessarily persisted in NM state-store
+    if container is acquired but not lunched on this node. (sandflee via jianeh)
+
 Release 2.7.3 - UNRELEASED
 
   INCOMPATIBLE CHANGES

+ 6 - 0
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/ContainerManagerImpl.java

@@ -1310,6 +1310,12 @@ public class ContainerManagerImpl extends CompositeService implements
       CMgrCompletedAppsEvent appsFinishedEvent =
           (CMgrCompletedAppsEvent) event;
       for (ApplicationId appID : appsFinishedEvent.getAppsToCleanup()) {
+        Application app = this.context.getApplications().get(appID);
+        if (app == null) {
+          LOG.warn("couldn't find application " + appID + " while processing"
+              + " FINISH_APPS event");
+          continue;
+        }
         String diagnostic = "";
         if (appsFinishedEvent.getReason() == CMgrCompletedAppsEvent.Reason.ON_SHUTDOWN) {
           diagnostic = "Application killed on shutdown";