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();
+ }
}
}