diff options
author | Matei Zaharia <matei@eecs.berkeley.edu> | 2012-11-16 20:56:09 -0800 |
---|---|---|
committer | Matei Zaharia <matei@eecs.berkeley.edu> | 2012-11-16 20:56:09 -0800 |
commit | 20a1058dd53222d1453087e28c1a90a723974c72 (patch) | |
tree | 034c3460081e3af02ca956a10e0bc5bb75ddb0c6 | |
parent | fcc0ba7da1caaca7b3f6f7a80630b4cbc227db46 (diff) | |
parent | 12c24e786c9f2eec02131a2bc7a5bb463797aa2a (diff) | |
download | spark-20a1058dd53222d1453087e28c1a90a723974c72.tar.gz spark-20a1058dd53222d1453087e28c1a90a723974c72.tar.bz2 spark-20a1058dd53222d1453087e28c1a90a723974c72.zip |
Merge pull request #305 from woggling/exit-on-uncaught
Set default uncaught exception handler to exit
-rw-r--r-- | core/src/main/scala/spark/SparkEnv.scala | 1 | ||||
-rw-r--r-- | core/src/main/scala/spark/executor/Executor.scala | 15 |
2 files changed, 15 insertions, 1 deletions
diff --git a/core/src/main/scala/spark/SparkEnv.scala b/core/src/main/scala/spark/SparkEnv.scala index 4c6ec6cc6e..9f2b0c42c7 100644 --- a/core/src/main/scala/spark/SparkEnv.scala +++ b/core/src/main/scala/spark/SparkEnv.scala @@ -68,7 +68,6 @@ object SparkEnv extends Logging { isMaster: Boolean, isLocal: Boolean ) : SparkEnv = { - val (actorSystem, boundPort) = AkkaUtils.createActorSystem("spark", hostname, port) // Bit of a hack: If this is the master and our port was 0 (meaning bind to any free port), diff --git a/core/src/main/scala/spark/executor/Executor.scala b/core/src/main/scala/spark/executor/Executor.scala index dfdb22024e..cb29a6b8b4 100644 --- a/core/src/main/scala/spark/executor/Executor.scala +++ b/core/src/main/scala/spark/executor/Executor.scala @@ -43,6 +43,21 @@ private[spark] class Executor extends Logging { urlClassLoader = createClassLoader() Thread.currentThread.setContextClassLoader(urlClassLoader) + // Make any thread terminations due to uncaught exceptions kill the entire + // executor process to avoid surprising stalls. + Thread.setDefaultUncaughtExceptionHandler( + new Thread.UncaughtExceptionHandler { + override def uncaughtException(thread: Thread, exception: Throwable) { + try { + logError("Uncaught exception in thread " + thread, exception) + System.exit(1) + } catch { + case t: Throwable => System.exit(2) + } + } + } + ) + // Initialize Spark environment (using system properties read above) env = SparkEnv.createFromSystemProperties(slaveHostname, 0, false, false) SparkEnv.set(env) |