You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tajo.apache.org by jh...@apache.org on 2014/03/19 02:15:34 UTC

git commit: TAJO-690: infinite loop occurs when rack task is assigning. (jinho)

Repository: incubator-tajo
Updated Branches:
  refs/heads/master f7caeb61f -> b178b70db


TAJO-690: infinite loop occurs when rack task is assigning. (jinho)


Project: http://git-wip-us.apache.org/repos/asf/incubator-tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tajo/commit/b178b70d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tajo/tree/b178b70d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tajo/diff/b178b70d

Branch: refs/heads/master
Commit: b178b70db311c94539a8a43ef4d96d9377475169
Parents: f7caeb6
Author: jinossy <ji...@gmail.com>
Authored: Wed Mar 19 10:14:48 2014 +0900
Committer: jinossy <ji...@gmail.com>
Committed: Wed Mar 19 10:14:48 2014 +0900

----------------------------------------------------------------------
 CHANGES.txt                                                     | 2 ++
 .../main/java/org/apache/tajo/master/DefaultTaskScheduler.java  | 5 +++--
 2 files changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/b178b70d/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index bc8f299..d51dfcb 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -276,6 +276,8 @@ Release 0.8.0 - unreleased
 
   BUG FIXES
 
+    TAJO-690: infinite loop occurs when rack task is assigning. (jinho)
+
     TAJO-689: NoSuchElementException occurs during assigning the leaf tasks. (jinho)
 
     TAJO-651: HcatalogStore should support (de)serialization of RCFile. (jinho)

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/b178b70d/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/DefaultTaskScheduler.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/DefaultTaskScheduler.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/DefaultTaskScheduler.java
index 91f9cea..28015d5 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/DefaultTaskScheduler.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/DefaultTaskScheduler.java
@@ -639,7 +639,6 @@ public class DefaultTaskScheduler extends AbstractTaskScheduler {
           //find remaining local task
           if (leafTasks.contains(attemptId)) {
             leafTasks.remove(attemptId);
-            leafTasksRackMapping.get(hostVolumeMapping.getRack()).remove(attemptId);
             //LOG.info(attemptId + " Assigned based on host match " + hostName);
             hostLocalAssigned++;
             totalAssigned++;
@@ -669,9 +668,11 @@ public class DefaultTaskScheduler extends AbstractTaskScheduler {
         for (HostVolumeMapping tasks : remainingTasks) {
           while (tasks.getRemainingLocalTaskSize() > 0){
             QueryUnitAttemptId tId = tasks.getQueryUnitAttemptIdByRack(rack);
+
+            if (tId == null) break;
+
             if (leafTasks.contains(tId)) {
               leafTasks.remove(tId);
-              leafTasksRackMapping.get(rack).remove(tId);
               attemptId = tId;
               break;
             }