You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tez.apache.org by hi...@apache.org on 2014/03/12 23:02:23 UTC

git commit: TEZ-928. NPE in last app attempt caused by registering for an RM unregister. (hitesh)

Repository: incubator-tez
Updated Branches:
  refs/heads/master 2118e9644 -> 3d0edf44e


TEZ-928. NPE in last app attempt caused by registering for an RM unregister. (hitesh)


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

Branch: refs/heads/master
Commit: 3d0edf44e001e74ad50301e700ecdc807af8221e
Parents: 2118e96
Author: Hitesh Shah <hi...@apache.org>
Authored: Wed Mar 12 15:01:17 2014 -0700
Committer: Hitesh Shah <hi...@apache.org>
Committed: Wed Mar 12 15:01:17 2014 -0700

----------------------------------------------------------------------
 .../tez/dag/app/rm/TaskSchedulerEventHandler.java      | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tez/blob/3d0edf44/tez-dag/src/main/java/org/apache/tez/dag/app/rm/TaskSchedulerEventHandler.java
----------------------------------------------------------------------
diff --git a/tez-dag/src/main/java/org/apache/tez/dag/app/rm/TaskSchedulerEventHandler.java b/tez-dag/src/main/java/org/apache/tez/dag/app/rm/TaskSchedulerEventHandler.java
index ebc4111..66ef819 100644
--- a/tez-dag/src/main/java/org/apache/tez/dag/app/rm/TaskSchedulerEventHandler.java
+++ b/tez-dag/src/main/java/org/apache/tez/dag/app/rm/TaskSchedulerEventHandler.java
@@ -24,6 +24,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -81,6 +82,8 @@ public class TaskSchedulerEventHandler extends AbstractService
   final DAGClientServer clientService;
   private final ContainerSignatureMatcher containerSignatureMatcher;
   private int cachedNodeCount = -1;
+  private AtomicBoolean shouldUnregisterFlag =
+      new AtomicBoolean(false);
 
   BlockingQueue<AMSchedulerEvent> eventQueue
                               = new LinkedBlockingQueue<AMSchedulerEvent>();
@@ -353,6 +356,11 @@ public class TaskSchedulerEventHandler extends AbstractService
         serviceAddr.getPort(), "", appContext);
     taskScheduler.init(getConfig());
     taskScheduler.start();
+    if (shouldUnregisterFlag.get()) {
+      // Flag may have been set earlier when task scheduler was not initialized
+      taskScheduler.setShouldUnregister();
+    }
+
     this.eventHandlingThread = new Thread("TaskSchedulerEventHandlerThread") {
       @Override
       public void run() {
@@ -552,8 +560,11 @@ public class TaskSchedulerEventHandler extends AbstractService
   }
 
   public void setShouldUnregisterFlag() {
-    this.taskScheduler.setShouldUnregister();
     LOG.info("TaskScheduler notified that it should unregister from RM");
+    this.shouldUnregisterFlag.set(true);
+    if (this.taskScheduler != null) {
+      this.taskScheduler.setShouldUnregister();
+    }
   }
 
 }