tez-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From hit...@apache.org
Subject git commit: TEZ-106. TaskImpl does not hold any diagnostic information that can be emitted to history. (Jeff Zhang via hitesh)
Date Wed, 25 Jun 2014 20:18:53 GMT
Repository: incubator-tez
Updated Branches:
  refs/heads/master 7295edd51 -> 2096836ce


TEZ-106. TaskImpl does not hold any diagnostic information that can be emitted to history.
(Jeff Zhang via 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/2096836c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tez/tree/2096836c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tez/diff/2096836c

Branch: refs/heads/master
Commit: 2096836ce3eff9ba8bb3cff2f4aff2c27d9cf564
Parents: 7295edd
Author: Hitesh Shah <hitesh@apache.org>
Authored: Wed Jun 25 13:17:36 2014 -0700
Committer: Hitesh Shah <hitesh@apache.org>
Committed: Wed Jun 25 13:17:36 2014 -0700

----------------------------------------------------------------------
 .../dag/app/dag/event/TaskEventTermination.java | 11 ++++--
 .../apache/tez/dag/app/dag/impl/TaskImpl.java   | 33 +++++++++++-------
 .../dag/history/events/TaskFinishedEvent.java   | 16 +++++++--
 .../impl/HistoryEventJsonConversion.java        |  1 +
 .../tez/dag/app/dag/impl/TestTaskImpl.java      | 36 ++++++++++++++++++++
 .../TestHistoryEventsProtoConversion.java       |  6 ++--
 .../impl/TestHistoryEventJsonConversion.java    |  2 +-
 .../ats/HistoryEventTimelineConversion.java     |  1 +
 .../ats/TestHistoryEventTimelineConversion.java |  2 +-
 9 files changed, 88 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tez/blob/2096836c/tez-dag/src/main/java/org/apache/tez/dag/app/dag/event/TaskEventTermination.java
----------------------------------------------------------------------
diff --git a/tez-dag/src/main/java/org/apache/tez/dag/app/dag/event/TaskEventTermination.java
b/tez-dag/src/main/java/org/apache/tez/dag/app/dag/event/TaskEventTermination.java
index 130e86f..73d5744 100644
--- a/tez-dag/src/main/java/org/apache/tez/dag/app/dag/event/TaskEventTermination.java
+++ b/tez-dag/src/main/java/org/apache/tez/dag/app/dag/event/TaskEventTermination.java
@@ -21,17 +21,24 @@ package org.apache.tez.dag.app.dag.event;
 import org.apache.tez.dag.app.dag.TaskTerminationCause;
 import org.apache.tez.dag.records.TezTaskID;
 
-public class TaskEventTermination extends TaskEvent {
+public class TaskEventTermination extends TaskEvent implements DiagnosableEvent{
 
   private TaskTerminationCause terminationCause;
-
+  private String diagnostics;
+  
   public TaskEventTermination(TezTaskID taskID, TaskTerminationCause terminationCause) {
     super(taskID, TaskEventType.T_TERMINATE);
     this.terminationCause = terminationCause;
+    this.diagnostics = "Task is terminated due to:" + terminationCause.name();
   }
 
   public TaskTerminationCause getTerminationCause() {
     return terminationCause;
   }
 
+  @Override
+  public String getDiagnosticInfo() {
+    return diagnostics;
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-tez/blob/2096836c/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/TaskImpl.java
----------------------------------------------------------------------
diff --git a/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/TaskImpl.java b/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/TaskImpl.java
index 005088d..3a55df8 100644
--- a/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/TaskImpl.java
+++ b/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/TaskImpl.java
@@ -69,6 +69,7 @@ import org.apache.tez.dag.app.dag.event.TaskEvent;
 import org.apache.tez.dag.app.dag.event.TaskEventAddTezEvent;
 import org.apache.tez.dag.app.dag.event.TaskEventRecoverTask;
 import org.apache.tez.dag.app.dag.event.TaskEventTAUpdate;
+import org.apache.tez.dag.app.dag.event.TaskEventTermination;
 import org.apache.tez.dag.app.dag.event.TaskEventType;
 import org.apache.tez.dag.app.dag.event.VertexEventTaskAttemptCompleted;
 import org.apache.tez.dag.app.dag.event.VertexEventTaskCompleted;
@@ -110,6 +111,7 @@ public class TaskImpl implements Task, EventHandler<TaskEvent> {
   protected final Clock clock;
   private final Lock readLock;
   private final Lock writeLock;
+  private final List<String> diagnostics = new ArrayList<String>();
   // TODO Metrics
   //private final MRAppMetrics metrics;
   protected final AppContext appContext;
@@ -489,18 +491,12 @@ public class TaskImpl implements Task, EventHandler<TaskEvent>
{
 
   @Override
   public List<String> getDiagnostics() {
-    List<String> diagnostics = new ArrayList<String>(attempts.size());
     readLock.lock();
     try {
-      for (TaskAttempt att : attempts.values()) {
-        String prefix = "AttemptID:" + att.getID() + " Info:";
-        diagnostics.add(prefix
-          + StringUtils.join(LINE_SEPARATOR, att.getDiagnostics()));
-      }
+      return this.diagnostics;
     } finally {
       readLock.unlock();
     }
-    return diagnostics;
   }
 
   private TaskAttempt createRecoveredEvent(TezTaskAttemptID tezTaskAttemptID) {
@@ -950,7 +946,7 @@ public class TaskImpl implements Task, EventHandler<TaskEvent> {
     TaskFinishedEvent finishEvt = new TaskFinishedEvent(taskId,
         getVertex().getName(), getLaunchTime(), clock.getTime(),
         successfulAttempt,
-        TaskState.SUCCEEDED, getCounters());
+        TaskState.SUCCEEDED, "", getCounters());
     this.appContext.getHistoryHandler().handle(
         new DAGHistoryEvent(taskId.getVertexID().getDAGId(), finishEvt));
   }
@@ -958,11 +954,19 @@ public class TaskImpl implements Task, EventHandler<TaskEvent>
{
   protected void logJobHistoryTaskFailedEvent(TaskState finalState) {
     TaskFinishedEvent finishEvt = new TaskFinishedEvent(taskId,
         getVertex().getName(), getLaunchTime(), clock.getTime(), null,
-        finalState, getCounters());
+        finalState, 
+        StringUtils.join(LINE_SEPARATOR, getDiagnostics()),
+        getCounters());
     this.appContext.getHistoryHandler().handle(
         new DAGHistoryEvent(taskId.getVertexID().getDAGId(), finishEvt));
   }
 
+  private void addDiagnosticInfo(String diag) {
+    if (diag != null && !diag.equals("")) {
+      diagnostics.add(diag);
+    }
+  }
+  
   private static class InitialScheduleTransition
     implements SingleArcTransition<TaskImpl, TaskEvent> {
 
@@ -1028,7 +1032,6 @@ public class TaskImpl implements Task, EventHandler<TaskEvent>
{
     @Override
     public void transition(TaskImpl task, TaskEvent event) {
       TezTaskAttemptID successTaId = ((TaskEventTAUpdate) event).getTaskAttemptID();
-
       if (task.commitAttempt != null &&
           !task.commitAttempt.equals(successTaId)) {
         // The succeeded attempt is not the one that was selected to commit
@@ -1075,6 +1078,7 @@ public class TaskImpl implements Task, EventHandler<TaskEvent>
{
     @Override
     public void transition(TaskImpl task, TaskEvent event) {
       TaskEventTAUpdate castEvent = (TaskEventTAUpdate) event;
+      task.addDiagnosticInfo("TaskAttempt " + castEvent.getTaskAttemptID().getId() + " killed");
       if (task.commitAttempt !=null &&
           castEvent.getTaskAttemptID().equals(task.commitAttempt)) {
         task.commitAttempt = null;
@@ -1258,6 +1262,8 @@ public class TaskImpl implements Task, EventHandler<TaskEvent>
{
     public TaskStateInternal transition(TaskImpl task, TaskEvent event) {
       task.failedAttempts++;
       TaskEventTAUpdate castEvent = (TaskEventTAUpdate) event;
+      task.addDiagnosticInfo("TaskAttempt " + castEvent.getTaskAttemptID().getId() + " failed,"
+          + " info=" + task.getAttempt(castEvent.getTaskAttemptID()).getDiagnostics());
       if (task.commitAttempt != null &&
           castEvent.getTaskAttemptID().equals(task.commitAttempt)) {
         task.commitAttempt = null;
@@ -1410,7 +1416,8 @@ public class TaskImpl implements Task, EventHandler<TaskEvent>
{
     implements SingleArcTransition<TaskImpl, TaskEvent> {
     @Override
     public void transition(TaskImpl task, TaskEvent event) {
-
+      TaskEventTermination terminateEvent = (TaskEventTermination)event;
+      task.addDiagnosticInfo(terminateEvent.getDiagnosticInfo());
       if (task.historyTaskStartGenerated) {
         task.logJobHistoryTaskFailedEvent(TaskState.KILLED);
       } else {
@@ -1449,13 +1456,15 @@ public class TaskImpl implements Task, EventHandler<TaskEvent>
{
     implements SingleArcTransition<TaskImpl, TaskEvent> {
     @Override
     public void transition(TaskImpl task, TaskEvent event) {
+      TaskEventTermination terminateEvent = (TaskEventTermination)event;
+      task.addDiagnosticInfo(terminateEvent.getDiagnosticInfo());
       // issue kill to all non finished attempts
       for (TaskAttempt attempt : task.attempts.values()) {
         task.killUnfinishedAttempt
             (attempt, "Task KILL is received. Killing attempt!");
       }
-
       task.numberUncompletedAttempts = 0;
+      
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-tez/blob/2096836c/tez-dag/src/main/java/org/apache/tez/dag/history/events/TaskFinishedEvent.java
----------------------------------------------------------------------
diff --git a/tez-dag/src/main/java/org/apache/tez/dag/history/events/TaskFinishedEvent.java
b/tez-dag/src/main/java/org/apache/tez/dag/history/events/TaskFinishedEvent.java
index c9013eb..c60ef58 100644
--- a/tez-dag/src/main/java/org/apache/tez/dag/history/events/TaskFinishedEvent.java
+++ b/tez-dag/src/main/java/org/apache/tez/dag/history/events/TaskFinishedEvent.java
@@ -44,16 +44,18 @@ public class TaskFinishedEvent implements HistoryEvent {
   private TaskState state;
   private TezCounters tezCounters;
   private TezTaskAttemptID successfulAttemptID;
-
+  private String diagnostics;
+  
   public TaskFinishedEvent(TezTaskID taskID,
       String vertexName, long startTime, long finishTime,
       TezTaskAttemptID successfulAttemptID,
-      TaskState state, TezCounters counters) {
+      TaskState state, String diagnostics, TezCounters counters) {
     this.vertexName = vertexName;
     this.taskID = taskID;
     this.startTime = startTime;
     this.finishTime = finishTime;
     this.state = state;
+    this.diagnostics = diagnostics;
     this.tezCounters = counters;
   }
 
@@ -80,6 +82,9 @@ public class TaskFinishedEvent implements HistoryEvent {
     builder.setTaskId(taskID.toString())
         .setState(state.ordinal())
         .setFinishTime(finishTime);
+    if (diagnostics != null) {
+      builder.setDiagnostics(diagnostics);
+    }
     if (tezCounters != null) {
       builder.setCounters(DagTypeConverters.convertTezCountersToProto(tezCounters));
     }
@@ -93,6 +98,9 @@ public class TaskFinishedEvent implements HistoryEvent {
     this.taskID = TezTaskID.fromString(proto.getTaskId());
     this.finishTime = proto.getFinishTime();
     this.state = TaskState.values()[proto.getState()];
+    if (proto.hasDiagnostics()) {
+      this.diagnostics = proto.getDiagnostics();
+    }
     if (proto.hasCounters()) {
       this.tezCounters = DagTypeConverters.convertTezCountersFromProto(
           proto.getCounters());
@@ -127,6 +135,7 @@ public class TaskFinishedEvent implements HistoryEvent {
         + ", status=" + state.name()
         + ", successfulAttemptID=" + (successfulAttemptID == null ? "null" :
             successfulAttemptID.toString())
+        + ", diagnostics=" + diagnostics
         + ", counters=" + ( tezCounters == null ? "null" :
           tezCounters.toString()
             .replaceAll("\\n", ", ").replaceAll("\\s+", " "));
@@ -156,4 +165,7 @@ public class TaskFinishedEvent implements HistoryEvent {
     return startTime;
   }
 
+  public String getDiagnostics() {
+    return diagnostics;
+  }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tez/blob/2096836c/tez-dag/src/main/java/org/apache/tez/dag/history/logging/impl/HistoryEventJsonConversion.java
----------------------------------------------------------------------
diff --git a/tez-dag/src/main/java/org/apache/tez/dag/history/logging/impl/HistoryEventJsonConversion.java
b/tez-dag/src/main/java/org/apache/tez/dag/history/logging/impl/HistoryEventJsonConversion.java
index e5bb1e5..12dcf1c 100644
--- a/tez-dag/src/main/java/org/apache/tez/dag/history/logging/impl/HistoryEventJsonConversion.java
+++ b/tez-dag/src/main/java/org/apache/tez/dag/history/logging/impl/HistoryEventJsonConversion.java
@@ -496,6 +496,7 @@ public class HistoryEventJsonConversion {
     otherInfo.put(ATSConstants.FINISH_TIME, event.getFinishTime());
     otherInfo.put(ATSConstants.TIME_TAKEN, (event.getFinishTime() - event.getStartTime()));
     otherInfo.put(ATSConstants.STATUS, event.getState().name());
+    otherInfo.put(ATSConstants.DIAGNOSTICS, event.getDiagnostics());
     otherInfo.put(ATSConstants.COUNTERS,
         DAGUtils.convertCountersToJSON(event.getTezCounters()));
 

http://git-wip-us.apache.org/repos/asf/incubator-tez/blob/2096836c/tez-dag/src/test/java/org/apache/tez/dag/app/dag/impl/TestTaskImpl.java
----------------------------------------------------------------------
diff --git a/tez-dag/src/test/java/org/apache/tez/dag/app/dag/impl/TestTaskImpl.java b/tez-dag/src/test/java/org/apache/tez/dag/app/dag/impl/TestTaskImpl.java
index 0923728..760f459 100644
--- a/tez-dag/src/test/java/org/apache/tez/dag/app/dag/impl/TestTaskImpl.java
+++ b/tez-dag/src/test/java/org/apache/tez/dag/app/dag/impl/TestTaskImpl.java
@@ -56,8 +56,12 @@ import org.apache.tez.dag.app.TaskHeartbeatHandler;
 import org.apache.tez.dag.app.dag.TaskStateInternal;
 import org.apache.tez.dag.app.dag.TaskTerminationCause;
 import org.apache.tez.dag.app.dag.Vertex;
+import org.apache.tez.dag.app.dag.event.TaskAttemptEventAttemptFailed;
+import org.apache.tez.dag.app.dag.event.TaskAttemptEventDiagnosticsUpdate;
+import org.apache.tez.dag.app.dag.event.TaskAttemptEventKillRequest;
 import org.apache.tez.dag.app.dag.event.TaskEvent;
 import org.apache.tez.dag.app.dag.event.TaskEventAddTezEvent;
+import org.apache.tez.dag.app.dag.event.TaskEventRecoverTask;
 import org.apache.tez.dag.app.dag.event.TaskEventTAUpdate;
 import org.apache.tez.dag.app.dag.event.TaskEventTermination;
 import org.apache.tez.dag.app.dag.event.TaskEventType;
@@ -510,6 +514,38 @@ public class TestTaskImpl {
     Assert.assertEquals(VertexEventType.V_TASK_RESCHEDULED, event.getType());
   }
 
+  @Test
+  public void testDiagnostics_TAUpdate(){
+    TezTaskID taskId = getNewTaskID();
+    scheduleTaskAttempt(taskId);
+    mockTask.handle(new TaskEventTAUpdate(mockTask.getLastAttempt().getID(), TaskEventType.T_ATTEMPT_KILLED));
+    assertEquals(1, mockTask.getDiagnostics().size());
+    assertEquals("TaskAttempt 0 killed", mockTask.getDiagnostics().get(0));
+    
+    launchTaskAttempt(mockTask.getLastAttempt().getID());
+    mockTask.getLastAttempt().handle(new TaskAttemptEventDiagnosticsUpdate(mockTask.getLastAttempt().getID(),
"diagnostics of test"));
+    mockTask.handle(new TaskEventTAUpdate(mockTask.getLastAttempt().getID(), TaskEventType.T_ATTEMPT_FAILED));
+    assertEquals(2, mockTask.getDiagnostics().size());
+    assertEquals("TaskAttempt 1 failed, info=[diagnostics of test]", mockTask.getDiagnostics().get(1));
+  }
+  
+  @Test
+  public void testDiagnostics_KillNew(){
+    TezTaskID taskId = getNewTaskID();
+    mockTask.handle(new TaskEventTermination(taskId, TaskTerminationCause.DAG_KILL));
+    assertEquals(1, mockTask.getDiagnostics().size());
+    assertTrue(mockTask.getDiagnostics().get(0).contains(TaskTerminationCause.DAG_KILL.name()));
+  }
+  
+  @Test
+  public void testDiagnostics_Kill(){
+    TezTaskID taskId = getNewTaskID();
+    scheduleTaskAttempt(taskId);
+    mockTask.handle(new TaskEventTermination(taskId, TaskTerminationCause.OTHER_TASK_FAILURE));
+    assertEquals(1, mockTask.getDiagnostics().size());
+    assertTrue(mockTask.getDiagnostics().get(0).contains(TaskTerminationCause.OTHER_TASK_FAILURE.name()));
+  }
+  
   // TODO Add test to validate the correct commit attempt.
 
   @SuppressWarnings("rawtypes")

http://git-wip-us.apache.org/repos/asf/incubator-tez/blob/2096836c/tez-dag/src/test/java/org/apache/tez/dag/history/events/TestHistoryEventsProtoConversion.java
----------------------------------------------------------------------
diff --git a/tez-dag/src/test/java/org/apache/tez/dag/history/events/TestHistoryEventsProtoConversion.java
b/tez-dag/src/test/java/org/apache/tez/dag/history/events/TestHistoryEventsProtoConversion.java
index 9f1ad89..ed91e20 100644
--- a/tez-dag/src/test/java/org/apache/tez/dag/history/events/TestHistoryEventsProtoConversion.java
+++ b/tez-dag/src/test/java/org/apache/tez/dag/history/events/TestHistoryEventsProtoConversion.java
@@ -389,7 +389,7 @@ public class TestHistoryEventsProtoConversion {
       TaskFinishedEvent event = new TaskFinishedEvent(
           TezTaskID.getInstance(TezVertexID.getInstance(
               TezDAGID.getInstance(ApplicationId.newInstance(0, 1), 1), 111), 1),
-          "vertex1", 11000l, 1000000l, null, TaskState.FAILED, null);
+          "vertex1", 11000l, 1000000l, null, TaskState.FAILED, null, null);
       TaskFinishedEvent deserializedEvent = (TaskFinishedEvent)
           testProtoConversion(event);
       Assert.assertEquals(event.getTaskID(), deserializedEvent.getTaskID());
@@ -401,6 +401,7 @@ public class TestHistoryEventsProtoConversion {
           deserializedEvent.getTezCounters());
       Assert.assertEquals(event.getSuccessfulAttemptID(),
           deserializedEvent.getSuccessfulAttemptID());
+      Assert.assertEquals(event.getDiagnostics(), deserializedEvent.getDiagnostics());
       logEvents(event, deserializedEvent);
     }
     {
@@ -410,7 +411,7 @@ public class TestHistoryEventsProtoConversion {
           "vertex1", 11000l, 1000000l,
           TezTaskAttemptID.getInstance(TezTaskID.getInstance(TezVertexID.getInstance(
               TezDAGID.getInstance(ApplicationId.newInstance(0, 1), 1), 111), 1), 1),
-          TaskState.FAILED, new TezCounters());
+          TaskState.FAILED, "task_diagnostics", new TezCounters());
       TaskFinishedEvent deserializedEvent = (TaskFinishedEvent)
           testProtoConversion(event);
       Assert.assertEquals(event.getTaskID(), deserializedEvent.getTaskID());
@@ -422,6 +423,7 @@ public class TestHistoryEventsProtoConversion {
           deserializedEvent.getTezCounters());
       Assert.assertEquals(event.getSuccessfulAttemptID(),
           deserializedEvent.getSuccessfulAttemptID());
+      Assert.assertEquals(event.getDiagnostics(), deserializedEvent.getDiagnostics());
       logEvents(event, deserializedEvent);
     }
   }

http://git-wip-us.apache.org/repos/asf/incubator-tez/blob/2096836c/tez-dag/src/test/java/org/apache/tez/dag/history/logging/impl/TestHistoryEventJsonConversion.java
----------------------------------------------------------------------
diff --git a/tez-dag/src/test/java/org/apache/tez/dag/history/logging/impl/TestHistoryEventJsonConversion.java
b/tez-dag/src/test/java/org/apache/tez/dag/history/logging/impl/TestHistoryEventJsonConversion.java
index 67be9f5..ad39531 100644
--- a/tez-dag/src/test/java/org/apache/tez/dag/history/logging/impl/TestHistoryEventJsonConversion.java
+++ b/tez-dag/src/test/java/org/apache/tez/dag/history/logging/impl/TestHistoryEventJsonConversion.java
@@ -134,7 +134,7 @@ public class TestHistoryEventJsonConversion {
           break;
         case TASK_FINISHED:
           event = new TaskFinishedEvent(tezTaskID, "v1", random.nextInt(), random.nextInt(),
-              tezTaskAttemptID, TaskState.FAILED, null);
+              tezTaskAttemptID, TaskState.FAILED, null, null);
           break;
         case TASK_ATTEMPT_STARTED:
           event = new TaskAttemptStartedEvent(tezTaskAttemptID, "v1", random.nextInt(), containerId,

http://git-wip-us.apache.org/repos/asf/incubator-tez/blob/2096836c/tez-plugins/tez-yarn-timeline-history/src/main/java/org/apache/tez/dag/history/logging/ats/HistoryEventTimelineConversion.java
----------------------------------------------------------------------
diff --git a/tez-plugins/tez-yarn-timeline-history/src/main/java/org/apache/tez/dag/history/logging/ats/HistoryEventTimelineConversion.java
b/tez-plugins/tez-yarn-timeline-history/src/main/java/org/apache/tez/dag/history/logging/ats/HistoryEventTimelineConversion.java
index 8ab9c91..5b81da9 100644
--- a/tez-plugins/tez-yarn-timeline-history/src/main/java/org/apache/tez/dag/history/logging/ats/HistoryEventTimelineConversion.java
+++ b/tez-plugins/tez-yarn-timeline-history/src/main/java/org/apache/tez/dag/history/logging/ats/HistoryEventTimelineConversion.java
@@ -362,6 +362,7 @@ public class HistoryEventTimelineConversion {
     atsEntity.addOtherInfo(ATSConstants.TIME_TAKEN, (event.getFinishTime() - event.getStartTime()));
     atsEntity.addOtherInfo(ATSConstants.STATUS, event.getState().name());
 
+    atsEntity.addOtherInfo(ATSConstants.DIAGNOSTICS, event.getDiagnostics());
     atsEntity.addOtherInfo(ATSConstants.COUNTERS,
         DAGUtils.convertCountersToATSMap(event.getTezCounters()));
 

http://git-wip-us.apache.org/repos/asf/incubator-tez/blob/2096836c/tez-plugins/tez-yarn-timeline-history/src/test/java/org/apache/tez/dag/history/logging/ats/TestHistoryEventTimelineConversion.java
----------------------------------------------------------------------
diff --git a/tez-plugins/tez-yarn-timeline-history/src/test/java/org/apache/tez/dag/history/logging/ats/TestHistoryEventTimelineConversion.java
b/tez-plugins/tez-yarn-timeline-history/src/test/java/org/apache/tez/dag/history/logging/ats/TestHistoryEventTimelineConversion.java
index c605585..5b19e80 100644
--- a/tez-plugins/tez-yarn-timeline-history/src/test/java/org/apache/tez/dag/history/logging/ats/TestHistoryEventTimelineConversion.java
+++ b/tez-plugins/tez-yarn-timeline-history/src/test/java/org/apache/tez/dag/history/logging/ats/TestHistoryEventTimelineConversion.java
@@ -134,7 +134,7 @@ public class TestHistoryEventTimelineConversion {
           break;
         case TASK_FINISHED:
           event = new TaskFinishedEvent(tezTaskID, "v1", random.nextInt(), random.nextInt(),
-              tezTaskAttemptID, TaskState.FAILED, null);
+              tezTaskAttemptID, TaskState.FAILED, null, null);
           break;
         case TASK_ATTEMPT_STARTED:
           event = new TaskAttemptStartedEvent(tezTaskAttemptID, "v1", random.nextInt(), containerId,


Mime
View raw message