YARN-3160. Fix non-atomic operation on nodeUpdateQueue in RMNodeImpl. (Contributed by Chengbing Liu)
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/c541a374 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/c541a374 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/c541a374 Branch: refs/heads/YARN-2928 Commit: c541a374d88ffed6ee71b0e5d556939ccd2c5159 Parents: a4ceea6 Author: Junping Du <junping...@apache.org> Authored: Wed Feb 11 03:44:31 2015 -0800 Committer: Junping Du <junping...@apache.org> Committed: Wed Feb 11 03:44:31 2015 -0800 ---------------------------------------------------------------------- hadoop-yarn-project/CHANGES.txt | 3 +++ .../hadoop/yarn/server/resourcemanager/rmnode/RMNodeImpl.java | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/c541a374/hadoop-yarn-project/CHANGES.txt ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index 92e1803..41927d7 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -537,6 +537,9 @@ Release 2.7.0 - UNRELEASED http(s)://proxy addr:port/proxy/<appId> to avoid duplicate sections. (Devaraj K via zjshen) + YARN-3160. Fix non-atomic operation on nodeUpdateQueue in RMNodeImpl. + (Chengbing Liu via junping_du) + Release 2.6.0 - 2014-11-18 INCOMPATIBLE CHANGES http://git-wip-us.apache.org/repos/asf/hadoop/blob/c541a374/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmnode/RMNodeImpl.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmnode/RMNodeImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmnode/RMNodeImpl.java index b3020b7..1bc98b2 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmnode/RMNodeImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmnode/RMNodeImpl.java @@ -842,8 +842,9 @@ public class RMNodeImpl implements RMNode, EventHandler<RMNodeEvent> { public List<UpdatedContainerInfo> pullContainerUpdates() { List<UpdatedContainerInfo> latestContainerInfoList = new ArrayList<UpdatedContainerInfo>(); - while(nodeUpdateQueue.peek() != null){ - latestContainerInfoList.add(nodeUpdateQueue.poll()); + UpdatedContainerInfo containerInfo; + while ((containerInfo = nodeUpdateQueue.poll()) != null) { + latestContainerInfoList.add(containerInfo); } this.nextHeartBeat = true; return latestContainerInfoList;