Explorar o código

Fixing a NPE in CS removeNode().

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/MR-279@1153455 13f79535-47bb-0310-9956-ffa450edef68
Vinod Kumar Vavilapalli %!s(int64=14) %!d(string=hai) anos
pai
achega
57c84215bb

+ 3 - 2
mapreduce/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java

@@ -606,7 +606,7 @@ implements ResourceScheduler, CapacitySchedulerContext {
   }
   }
 
 
   private synchronized void removeNode(RMNode nodeInfo) {
   private synchronized void removeNode(RMNode nodeInfo) {
-    SchedulerNode node = this.nodes.remove(nodeInfo.getNodeID());
+    SchedulerNode node = this.nodes.get(nodeInfo.getNodeID());
     Resources.subtractFrom(clusterResource, nodeInfo.getTotalCapability());
     Resources.subtractFrom(clusterResource, nodeInfo.getTotalCapability());
     --numNodeManagers;
     --numNodeManagers;
 
 
@@ -621,7 +621,8 @@ implements ResourceScheduler, CapacitySchedulerContext {
     if (reservedContainer != null) {
     if (reservedContainer != null) {
       completedContainer(reservedContainer, RMContainerEventType.KILL);
       completedContainer(reservedContainer, RMContainerEventType.KILL);
     }
     }
-    
+
+    this.nodes.remove(nodeInfo.getNodeID());
     LOG.info("Removed node " + nodeInfo.getNodeAddress() + 
     LOG.info("Removed node " + nodeInfo.getNodeAddress() + 
         " clusterResource: " + clusterResource);
         " clusterResource: " + clusterResource);
   }
   }