YARN-5185. StageAllocaterGreedyRLE: Fix NPE in corner case. (Carlo Curino via asuresh)
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/7a9b7372 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/7a9b7372 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/7a9b7372 Branch: refs/heads/HDFS-7240 Commit: 7a9b7372a1a917c7b5e1beca7e13c0419e3dbfef Parents: 6de9213 Author: Arun Suresh <asur...@apache.org> Authored: Mon Jun 6 21:06:52 2016 -0700 Committer: Arun Suresh <asur...@apache.org> Committed: Mon Jun 6 21:06:52 2016 -0700 ---------------------------------------------------------------------- .../planning/StageAllocatorGreedyRLE.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/7a9b7372/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/reservation/planning/StageAllocatorGreedyRLE.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/reservation/planning/StageAllocatorGreedyRLE.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/reservation/planning/StageAllocatorGreedyRLE.java index c5a3192..5e748fc 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/reservation/planning/StageAllocatorGreedyRLE.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/reservation/planning/StageAllocatorGreedyRLE.java @@ -168,12 +168,20 @@ public class StageAllocatorGreedyRLE implements StageAllocator { if (allocateLeft) { // set earliest start to the min of the constraining "range" or my the // end of this allocation - stageEarliestStart = - Math.min(partialMap.higherKey(minPoint), stageEarliestStart + dur); + if(partialMap.higherKey(minPoint) == null){ + stageEarliestStart = stageEarliestStart + dur; + } else { + stageEarliestStart = + Math.min(partialMap.higherKey(minPoint), stageEarliestStart + dur); + } } else { // same as above moving right-to-left - stageDeadline = - Math.max(partialMap.higherKey(minPoint), stageDeadline - dur); + if(partialMap.higherKey(minPoint) == null){ + stageDeadline = stageDeadline - dur; + } else { + stageDeadline = + Math.max(partialMap.higherKey(minPoint), stageDeadline - dur); + } } } --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org