Repository: spark
Updated Branches:
  refs/heads/master fc6dbcc70 -> b0849b8ae


[SPARK-12339][SPARK-11206][WEBUI] Added a null check that was removed in

Updates made in SPARK-11206 missed an edge case which cause's a 
NullPointerException when a task is killed. In some cases when a task ends in 
failure taskMetrics is initialized as null (see 
JobProgressListener.onTaskEnd()). To address this a null check was added. 
Before the changes in SPARK-11206 this null check was called at the start of 
the updateTaskAccumulatorValues() function.

Author: Alex Bozarth <ajboz...@us.ibm.com>

Closes #10405 from ajbozarth/spark12339.


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

Branch: refs/heads/master
Commit: b0849b8aeafa801bb0561f1f6e46dc1d56c37c19
Parents: fc6dbcc
Author: Alex Bozarth <ajboz...@us.ibm.com>
Authored: Mon Dec 21 14:06:36 2015 -0800
Committer: Andrew Or <and...@databricks.com>
Committed: Mon Dec 21 14:06:36 2015 -0800

----------------------------------------------------------------------
 .../apache/spark/sql/execution/ui/SQLListener.scala   | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/spark/blob/b0849b8a/sql/core/src/main/scala/org/apache/spark/sql/execution/ui/SQLListener.scala
----------------------------------------------------------------------
diff --git 
a/sql/core/src/main/scala/org/apache/spark/sql/execution/ui/SQLListener.scala 
b/sql/core/src/main/scala/org/apache/spark/sql/execution/ui/SQLListener.scala
index e19a1e3..622e01c 100644
--- 
a/sql/core/src/main/scala/org/apache/spark/sql/execution/ui/SQLListener.scala
+++ 
b/sql/core/src/main/scala/org/apache/spark/sql/execution/ui/SQLListener.scala
@@ -160,12 +160,14 @@ private[sql] class SQLListener(conf: SparkConf) extends 
SparkListener with Loggi
   }
 
   override def onTaskEnd(taskEnd: SparkListenerTaskEnd): Unit = synchronized {
-    updateTaskAccumulatorValues(
-      taskEnd.taskInfo.taskId,
-      taskEnd.stageId,
-      taskEnd.stageAttemptId,
-      taskEnd.taskMetrics.accumulatorUpdates(),
-      finishTask = true)
+    if (taskEnd.taskMetrics != null) {
+      updateTaskAccumulatorValues(
+        taskEnd.taskInfo.taskId,
+        taskEnd.stageId,
+        taskEnd.stageAttemptId,
+        taskEnd.taskMetrics.accumulatorUpdates(),
+        finishTask = true)
+    }
   }
 
   /**


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org
For additional commands, e-mail: commits-h...@spark.apache.org

Reply via email to