aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnClientSchedulerBackend.scala11
1 files changed, 7 insertions, 4 deletions
diff --git a/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnClientSchedulerBackend.scala b/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnClientSchedulerBackend.scala
index 407dc1ac4d..99c05329b4 100644
--- a/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnClientSchedulerBackend.scala
+++ b/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnClientSchedulerBackend.scala
@@ -128,10 +128,13 @@ private[spark] class YarnClientSchedulerBackend(
assert(client != null && appId != null, "Application has not been submitted yet!")
val t = new Thread {
override def run() {
- val (state, _) = client.monitorApplication(appId, logApplicationReport = false)
- logError(s"Yarn application has already exited with state $state!")
- sc.stop()
- Thread.currentThread().interrupt()
+ try {
+ val (state, _) = client.monitorApplication(appId, logApplicationReport = false)
+ logError(s"Yarn application has already exited with state $state!")
+ sc.stop()
+ } catch {
+ case e: InterruptedException => logInfo("Interrupting monitor thread")
+ }
}
}
t.setName("Yarn application state monitor")