Browse Source

Fix NPE in FifoScheduler. (mahadev)

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/MR-279@1153743 13f79535-47bb-0310-9956-ffa450edef68
Mahadev Konar 14 years ago
parent
commit
6a8ae8796b

+ 2 - 0
mapreduce/CHANGES.txt

@@ -4,6 +4,8 @@ Trunk (unreleased changes)
 
   MAPREDUCE-279
 
+    Fix NPE in FifoScheduler. (mahadev)
+
     Harmonize slf4j versions. (llu)
 
     MAPREDUCE-2772. Fix MR-279 build after common mavenization, part 2.

+ 11 - 5
mapreduce/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fifo/FifoScheduler.java

@@ -540,11 +540,17 @@ public class FifoScheduler implements ResourceScheduler {
     
     for (List<Container> appContainers : remoteContainers.values()) {
       for (Container container : appContainers) {
-        if (container.getState() == ContainerState.RUNNING) {
-          containerLaunchedOnNode(container, node);
-        } else { // has to COMPLETE
-          containerCompleted(getRMContainer(container.getId()), 
-              RMContainerEventType.FINISHED);
+        /* make sure the scheduler hasnt already removed the applications */
+        if (getApplication(container.getId().getAppAttemptId()) != null) {
+          if (container.getState() == ContainerState.RUNNING) {
+            containerLaunchedOnNode(container, node);
+          } else { // has to COMPLETE
+            containerCompleted(getRMContainer(container.getId()), 
+                RMContainerEventType.FINISHED);
+          }
+        }
+        else {
+          LOG.warn("Scheduler not tracking application " + container.getId().getAppAttemptId());
         }
       }
     }