TEZ-2204. TestAMRecovery increasingly flaky on jenkins builds. (zjffdu)

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

Branch: refs/heads/TEZ-2003
Commit: f53942ceaa74f4c3b272c4ac0ffb14db46ce8127
Parents: 6d0b10a
Author: Jeff Zhang <[email protected]>
Authored: Tue Mar 24 16:48:09 2015 +0800
Committer: Jeff Zhang <[email protected]>
Committed: Tue Mar 24 16:48:09 2015 +0800

----------------------------------------------------------------------
 CHANGES.txt                                          |  1 +
 tez-common/findbugs-exclude.xml                      |  5 +++--
 .../java/org/apache/tez/common/AsyncDispatcher.java  | 15 +++++++++++++--
 .../java/org/apache/tez/dag/app/DAGAppMaster.java    |  7 +++++++
 4 files changed, 24 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tez/blob/f53942ce/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index f8677b1..4cbb567 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -8,6 +8,7 @@ INCOMPATIBLE CHANGES
   TEZ-2176. Move all logging to slf4j. (commons-logging jar no longer part of 
Tez tar)
 
 ALL CHANGES:
+  TEZ-2204. TestAMRecovery increasingly flaky on jenkins builds.
   TEZ-2209. Fix pipelined shuffle to fetch data from any one attempt
   TEZ-2210. Record DAG AM CPU usage stats
   TEZ-2203. Intern strings in tez counters

http://git-wip-us.apache.org/repos/asf/tez/blob/f53942ce/tez-common/findbugs-exclude.xml
----------------------------------------------------------------------
diff --git a/tez-common/findbugs-exclude.xml b/tez-common/findbugs-exclude.xml
index 2950e65..7814585 100644
--- a/tez-common/findbugs-exclude.xml
+++ b/tez-common/findbugs-exclude.xml
@@ -13,9 +13,10 @@
 -->
 <FindBugsFilter>
 
+  <!-- TEZ-2204 -->
   <Match>
-    <Class name="org.apache.tez.common.AsyncDispatcher"/>
-    <Method name="dispatch"/>
+    <Class name="org.apache.tez.common.AsyncDispatcher$2"/>
+    <Method name="run" />
     <Bug pattern="DM_EXIT"/>
   </Match>
 

http://git-wip-us.apache.org/repos/asf/tez/blob/f53942ce/tez-common/src/main/java/org/apache/tez/common/AsyncDispatcher.java
----------------------------------------------------------------------
diff --git 
a/tez-common/src/main/java/org/apache/tez/common/AsyncDispatcher.java 
b/tez-common/src/main/java/org/apache/tez/common/AsyncDispatcher.java
index 173b4c7..b751260 100644
--- a/tez-common/src/main/java/org/apache/tez/common/AsyncDispatcher.java
+++ b/tez-common/src/main/java/org/apache/tez/common/AsyncDispatcher.java
@@ -189,8 +189,9 @@ public class AsyncDispatcher extends CompositeService 
implements Dispatcher {
       if (exitOnDispatchException
           && (ShutdownHookManager.get().isShutdownInProgress()) == false
           && stopped == false) {
-        LOG.info("Exiting, bbye..");
-        System.exit(-1);
+        Thread shutDownThread = new Thread(createShutDownThread());
+        shutDownThread.setName("AsyncDispatcher ShutDown handler");
+        shutDownThread.start();
       }
     }
   }
@@ -315,4 +316,14 @@ public class AsyncDispatcher extends CompositeService 
implements Dispatcher {
     }
 
   }
+
+  Runnable createShutDownThread() {
+    return new Runnable() {
+      @Override
+      public void run() {
+        LOG.info("Exiting, bbye..");
+        System.exit(-1);
+      }
+    };
+  }
 }

http://git-wip-us.apache.org/repos/asf/tez/blob/f53942ce/tez-dag/src/main/java/org/apache/tez/dag/app/DAGAppMaster.java
----------------------------------------------------------------------
diff --git a/tez-dag/src/main/java/org/apache/tez/dag/app/DAGAppMaster.java 
b/tez-dag/src/main/java/org/apache/tez/dag/app/DAGAppMaster.java
index e0351b0..2924b25 100644
--- a/tez-dag/src/main/java/org/apache/tez/dag/app/DAGAppMaster.java
+++ b/tez-dag/src/main/java/org/apache/tez/dag/app/DAGAppMaster.java
@@ -716,6 +716,13 @@ public class DAGAppMaster extends AbstractService {
       EventHandler<DAGAppMasterEvent> {
     @Override
     public void handle(DAGAppMasterEvent event) {
+      // don't handle events if DAGAppMaster is in the state of STOPPED,
+      // otherwise there may be dead-lock happen.  TEZ-2204
+      if (DAGAppMaster.this.getServiceState() == STATE.STOPPED) {
+        LOG.info("ignore event when DAGAppMaster is in the state of STOPPED, 
eventType="
+          + event.getType());
+        return;
+      }
       DAGAppMaster.this.handle(event);
     }
   }

Reply via email to