diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index ceb37913ce..b9789b85bf 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -1202,6 +1202,9 @@ Release 2.8.0 - UNRELEASED YARN-4400. AsyncDispatcher.waitForDrained should be final. (Daniel Templeton via junping_du) + YARN-1382. Remove unusableRMNodesConcurrentSet (never used) in NodeListManager + to get rid of memory leak. (Rohith Sharma K S via junping_du) + Release 2.7.3 - UNRELEASED INCOMPATIBLE CHANGES diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/NodesListManager.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/NodesListManager.java index 1e8b98a010..4d9922b70d 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/NodesListManager.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/NodesListManager.java @@ -19,8 +19,6 @@ package org.apache.hadoop.yarn.server.resourcemanager; import java.io.IOException; -import java.util.Collection; -import java.util.Collections; import java.util.HashSet; import java.util.Map.Entry; import java.util.Set; @@ -62,9 +60,6 @@ public class NodesListManager extends CompositeService implements private HostsFileReader hostsReader; private Configuration conf; - private Set unusableRMNodesConcurrentSet = Collections - .newSetFromMap(new ConcurrentHashMap()); - private final RMContext rmContext; private String includesFile; @@ -290,24 +285,12 @@ public boolean isValidNode(String hostName) { } } - /** - * Provides the currently unusable nodes. Copies it into provided collection. - * @param unUsableNodes - * Collection to which the unusable nodes are added - * @return number of unusable nodes added - */ - public int getUnusableNodes(Collection unUsableNodes) { - unUsableNodes.addAll(unusableRMNodesConcurrentSet); - return unusableRMNodesConcurrentSet.size(); - } - @Override public void handle(NodesListManagerEvent event) { RMNode eventNode = event.getNode(); switch (event.getType()) { case NODE_UNUSABLE: LOG.debug(eventNode + " reported unusable"); - unusableRMNodesConcurrentSet.add(eventNode); for(RMApp app: rmContext.getRMApps().values()) { if (!app.isAppFinalStateStored()) { this.rmContext @@ -320,10 +303,7 @@ public void handle(NodesListManagerEvent event) { } break; case NODE_USABLE: - if (unusableRMNodesConcurrentSet.contains(eventNode)) { - LOG.debug(eventNode + " reported usable"); - unusableRMNodesConcurrentSet.remove(eventNode); - } + LOG.debug(eventNode + " reported usable"); for (RMApp app : rmContext.getRMApps().values()) { if (!app.isAppFinalStateStored()) { this.rmContext