Repository: spark
Updated Branches:
  refs/heads/branch-1.0 9ff42249e -> b5e968696


[SPARK-1886] check executor id existence when executor exit

Author: Zhen Peng <[email protected]>

Closes #827 from zhpengg/bugfix-executor-id-not-found and squashes the 
following commits:

cd8bb65 [Zhen Peng] bugfix: check executor id existence when executor exit

(cherry picked from commit 4e4831b8facc186cda6ef31040ccdeab48acbbb7)
Signed-off-by: Aaron Davidson <[email protected]>


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

Branch: refs/heads/branch-1.0
Commit: b5e968696186c54973c815c62b85183850caed35
Parents: 9ff4224
Author: Zhen Peng <[email protected]>
Authored: Sat May 24 20:40:19 2014 -0700
Committer: Aaron Davidson <[email protected]>
Committed: Sat May 24 20:40:38 2014 -0700

----------------------------------------------------------------------
 .../org/apache/spark/deploy/worker/Worker.scala | 22 +++++++++++++-------
 1 file changed, 14 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/spark/blob/b5e96869/core/src/main/scala/org/apache/spark/deploy/worker/Worker.scala
----------------------------------------------------------------------
diff --git a/core/src/main/scala/org/apache/spark/deploy/worker/Worker.scala 
b/core/src/main/scala/org/apache/spark/deploy/worker/Worker.scala
index fb9cc11..8b67479 100755
--- a/core/src/main/scala/org/apache/spark/deploy/worker/Worker.scala
+++ b/core/src/main/scala/org/apache/spark/deploy/worker/Worker.scala
@@ -263,14 +263,20 @@ private[spark] class Worker(
       }
       val fullId = appId + "/" + execId
       if (ExecutorState.isFinished(state)) {
-        val executor = executors(fullId)
-        logInfo("Executor " + fullId + " finished with state " + state +
-          message.map(" message " + _).getOrElse("") +
-          exitStatus.map(" exitStatus " + _).getOrElse(""))
-        executors -= fullId
-        finishedExecutors(fullId) = executor
-        coresUsed -= executor.cores
-        memoryUsed -= executor.memory
+        executors.get(fullId) match {
+          case Some(executor) => 
+            logInfo("Executor " + fullId + " finished with state " + state +
+              message.map(" message " + _).getOrElse("") +
+              exitStatus.map(" exitStatus " + _).getOrElse(""))
+            executors -= fullId
+            finishedExecutors(fullId) = executor
+            coresUsed -= executor.cores
+            memoryUsed -= executor.memory
+          case None =>
+            logInfo("Unknown Executor " + fullId + " finished with state " + 
state +
+              message.map(" message " + _).getOrElse("") +
+              exitStatus.map(" exitStatus " + _).getOrElse(""))
+        }
       }
 
     case KillExecutor(masterUrl, appId, execId) =>

Reply via email to