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 <[email protected]> Authored: Fri Dec 11 10:45:31 2015 -0800 Committer: Hitesh Shah <[email protected]> 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);
