Browse Source

Merge -r 1428386:1428387 from trunk to branch-2. Fixes: YARN-300. After YARN-271, fair scheduler can infinite loop and not schedule any application. Contributed by Sandy Ryza.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1428393 13f79535-47bb-0310-9956-ffa450edef68
Thomas White 12 years ago
parent
commit
7fcf0ec2aa

+ 3 - 0
hadoop-yarn-project/CHANGES.txt

@@ -144,6 +144,9 @@ Release 2.0.3-alpha - Unreleased
     YARN-288. Fair scheduler queue doesn't accept any jobs when ACLs are
     configured. (Sandy Ryza via tomwhite)
 
+    YARN-300. After YARN-271, fair scheduler can infinite loop and not
+    schedule any application. (Sandy Ryza via tomwhite)
+
 Release 2.0.2-alpha - 2012-09-07 
 
     YARN-9. Rename YARN_HOME to HADOOP_YARN_HOME. (vinodkv via acmurthy)

+ 1 - 1
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/FairScheduler.java

@@ -760,7 +760,7 @@ public class FairScheduler implements ResourceScheduler {
     // Otherwise, schedule at queue which is furthest below fair share
     else {
       int assignedContainers = 0;
-      while (true) {
+      while (node.getReservedContainer() == null) {
         // At most one task is scheduled each iteration of this loop
         List<FSLeafQueue> scheds = new ArrayList<FSLeafQueue>(
             queueMgr.getLeafQueues());