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 2015/12/11 19:47:14 UTC

tez git commit: TEZ-2963. RecoveryService#handleSummaryEvent exception with HDFS transparent encryption + kerberos authentication. (Karel Kolman and hitesh via hitesh)

Repository: tez
Updated Branches:
  refs/heads/master 460e0b2a0 -> 0c5ccb66a


TEZ-2963. RecoveryService#handleSummaryEvent exception with HDFS transparent encryption + kerberos authentication. (Karel Kolman and hitesh via hitesh)


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

Branch: refs/heads/master
Commit: 0c5ccb66afa1a972b2652ecd1d3f98c974f31add
Parents: 460e0b2
Author: Hitesh Shah <hi...@apache.org>
Authored: Fri Dec 11 10:45:31 2015 -0800
Committer: Hitesh Shah <hi...@apache.org>
Committed: Fri Dec 11 10:47:01 2015 -0800

----------------------------------------------------------------------
 CHANGES.txt                                     |  2 ++
 .../org/apache/tez/dag/app/DAGAppMaster.java    | 38 +++++++++++++++-----
 2 files changed, 31 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tez/blob/0c5ccb66/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index ac8af72..80e6fcd 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -9,6 +9,7 @@ INCOMPATIBLE CHANGES
   TEZ-2949. Allow duplicate dag names within session for Tez.
 
 ALL CHANGES:
+  TEZ-2963. RecoveryService#handleSummaryEvent exception with HDFS transparent encryption + kerberos authentication.
   TEZ-2966. Tez does not honor mapreduce.task.timeout
   TEZ-2979. FlakyTest: org.apache.tez.history.TestHistoryParser.
   TEZ-1491. Tez reducer-side merge's counter update is slow.
@@ -279,6 +280,7 @@ INCOMPATIBLE CHANGES
   TEZ-2949. Allow duplicate dag names within session for Tez.
 
 ALL CHANGES
+  TEZ-2963. RecoveryService#handleSummaryEvent exception with HDFS transparent encryption + kerberos authentication.
   TEZ-2966. Tez does not honor mapreduce.task.timeout
   TEZ-2346. TEZ-UI: Lazy load other info / counter data
   TEZ-2975. Bump up apache commons dependency.

http://git-wip-us.apache.org/repos/asf/tez/blob/0c5ccb66/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 23981e7..05261ba 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
@@ -1271,10 +1271,22 @@ public class DAGAppMaster extends AbstractService {
     }
   }
 
-  void logDAGKillRequestEvent(TezDAGID dagId, boolean isSessionStopped) throws IOException {
-    DAGKillRequestEvent killRequestEvent = new DAGKillRequestEvent(dagId, clock.getTime(), isSessionStopped);
-    historyEventHandler.handleCriticalEvent(
-        new DAGHistoryEvent(dagId, killRequestEvent));
+  void logDAGKillRequestEvent(final TezDAGID dagId, final boolean isSessionStopped)
+      throws IOException {
+    try {
+      appMasterUgi.doAs(new PrivilegedExceptionAction<Void>() {
+        @Override
+        public Void run() throws Exception {
+          DAGKillRequestEvent killRequestEvent = new DAGKillRequestEvent(dagId, clock.getTime(),
+              isSessionStopped);
+          historyEventHandler.handleCriticalEvent(
+              new DAGHistoryEvent(dagId, killRequestEvent));
+          return null;
+        }
+      });
+    } catch (InterruptedException e) {
+      throw new TezUncheckedException(e);
+    }
   }
 
   public String submitDAGToAppMaster(DAGPlan dagPlan,
@@ -2316,7 +2328,7 @@ public class DAGAppMaster extends AbstractService {
     this.appName = dagPlan.getName();
 
     // /////////////////// Create the job itself.
-    DAG newDAG = createDAG(dagPlan);
+    final DAG newDAG = createDAG(dagPlan);
     _updateLoggers(newDAG, "");
     if (LOG.isDebugEnabled()) {
       LOG.debug("Running a DAG with " + dagPlan.getVertexCount()
@@ -2346,7 +2358,7 @@ public class DAGAppMaster extends AbstractService {
 
     // Job name is the same as the app name until we support multiple dags
     // for an app later
-    DAGSubmittedEvent submittedEvent = new DAGSubmittedEvent(newDAG.getID(),
+    final DAGSubmittedEvent submittedEvent = new DAGSubmittedEvent(newDAG.getID(),
         submitTime, dagPlan, this.appAttemptID, cumulativeAdditionalResources,
         newDAG.getUserName(), newDAG.getConf(), containerLogs);
     boolean dagLoggingEnabled = newDAG.getConf().getBoolean(
@@ -2354,10 +2366,18 @@ public class DAGAppMaster extends AbstractService {
         TezConfiguration.TEZ_DAG_HISTORY_LOGGING_ENABLED_DEFAULT);
     submittedEvent.setHistoryLoggingEnabled(dagLoggingEnabled);
     try {
-      historyEventHandler.handleCriticalEvent(
-          new DAGHistoryEvent(newDAG.getID(), submittedEvent));
+       appMasterUgi.doAs(new PrivilegedExceptionAction<Void>() {
+         @Override
+         public Void run() throws Exception {
+           historyEventHandler.handleCriticalEvent(
+               new DAGHistoryEvent(newDAG.getID(), submittedEvent));
+           return null;
+         }
+       });
     } catch (IOException e) {
-      throw new RuntimeException(e);
+      throw new TezUncheckedException(e);
+    } catch (InterruptedException e) {
+      throw new TezUncheckedException(e);
     }
 
     startDAGExecution(newDAG, lrDiff);