aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorPatrick Wendell <pwendell@gmail.com>2013-05-12 07:54:03 -0700
committerPatrick Wendell <pwendell@gmail.com>2013-05-12 07:54:03 -0700
commit7f0833647b784c4ec7cd2f2e8e4fcd5ed6f673cd (patch)
treef2de6cafd38fb71a1e101540b7847ac9cff9522d /core
parent72b9c4cb6ec4080eb8751e5e040f180272ac82a6 (diff)
downloadspark-7f0833647b784c4ec7cd2f2e8e4fcd5ed6f673cd.tar.gz
spark-7f0833647b784c4ec7cd2f2e8e4fcd5ed6f673cd.tar.bz2
spark-7f0833647b784c4ec7cd2f2e8e4fcd5ed6f673cd.zip
Capturing class name
Diffstat (limited to 'core')
-rw-r--r--core/src/main/scala/spark/TaskEndReason.scala1
-rw-r--r--core/src/main/scala/spark/executor/Executor.scala2
-rw-r--r--core/src/main/scala/spark/scheduler/cluster/TaskSetManager.scala3
-rw-r--r--core/src/main/scala/spark/scheduler/local/LocalScheduler.scala7
4 files changed, 8 insertions, 5 deletions
diff --git a/core/src/main/scala/spark/TaskEndReason.scala b/core/src/main/scala/spark/TaskEndReason.scala
index ce9bb49897..ca793eb402 100644
--- a/core/src/main/scala/spark/TaskEndReason.scala
+++ b/core/src/main/scala/spark/TaskEndReason.scala
@@ -22,6 +22,7 @@ private[spark] case class FetchFailed(
extends TaskEndReason
private[spark] case class ExceptionFailure(
+ className: String,
description: String,
stackTrace: Array[StackTraceElement])
extends TaskEndReason
diff --git a/core/src/main/scala/spark/executor/Executor.scala b/core/src/main/scala/spark/executor/Executor.scala
index 1d5516966d..da20b84544 100644
--- a/core/src/main/scala/spark/executor/Executor.scala
+++ b/core/src/main/scala/spark/executor/Executor.scala
@@ -122,7 +122,7 @@ private[spark] class Executor(executorId: String, slaveHostname: String, propert
}
case t: Throwable => {
- val reason = ExceptionFailure(t.toString, t.getStackTrace)
+ val reason = ExceptionFailure(t.getClass.getName, t.toString, t.getStackTrace)
context.statusUpdate(taskId, TaskState.FAILED, ser.serialize(reason))
// TODO: Should we exit the whole executor here? On the one hand, the failed task may
diff --git a/core/src/main/scala/spark/scheduler/cluster/TaskSetManager.scala b/core/src/main/scala/spark/scheduler/cluster/TaskSetManager.scala
index 6d663de2f8..06de3c755e 100644
--- a/core/src/main/scala/spark/scheduler/cluster/TaskSetManager.scala
+++ b/core/src/main/scala/spark/scheduler/cluster/TaskSetManager.scala
@@ -512,7 +512,8 @@ private[spark] class TaskSetManager(sched: ClusterScheduler, val taskSet: TaskSe
}
if (printFull) {
val locs = ef.stackTrace.map(loc => "\tat %s".format(loc.toString))
- logInfo("Loss was due to %s\n%s".format(ef.description, locs.mkString("\n")))
+ logInfo("Loss was due to %s\n%s\n%s".format(
+ ef.className, ef.description, locs.mkString("\n")))
} else {
logInfo("Loss was due to %s [duplicate %d]".format(ef.description, dupCount))
}
diff --git a/core/src/main/scala/spark/scheduler/local/LocalScheduler.scala b/core/src/main/scala/spark/scheduler/local/LocalScheduler.scala
index a357422466..ebe42685ad 100644
--- a/core/src/main/scala/spark/scheduler/local/LocalScheduler.scala
+++ b/core/src/main/scala/spark/scheduler/local/LocalScheduler.scala
@@ -101,9 +101,10 @@ private[spark] class LocalScheduler(threads: Int, maxFailures: Int, sc: SparkCon
submitTask(task, idInJob)
} else {
// TODO: Do something nicer here to return all the way to the user
- if (!Thread.currentThread().isInterrupted)
- listener.taskEnded(
- task, new ExceptionFailure(t.toString, t.getStackTrace), null, null, info, null)
+ if (!Thread.currentThread().isInterrupted) {
+ val failure = new ExceptionFailure(t.getClass.getName, t.toString, t.getStackTrace)
+ listener.taskEnded(task, failure, null, null, info, null)
+ }
}
}
}