From ecaf332ba2ad02c2fc49ffefb7f17eb756a4bc23 Mon Sep 17 00:00:00 2001 From: Marcelo Vanzin Date: Tue, 19 Aug 2014 10:30:31 -0700 Subject: [PATCH] Small fix to shutdown code. Avoid an interrupted exception when shutting down from the reporter thread. Also, make extra effort to finish the RM connection. --- .../org/apache/spark/deploy/yarn/ApplicationMaster.scala | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/yarn/common/src/main/scala/org/apache/spark/deploy/yarn/ApplicationMaster.scala b/yarn/common/src/main/scala/org/apache/spark/deploy/yarn/ApplicationMaster.scala index 5fb87bd4b62c8..3aa0e581e076d 100644 --- a/yarn/common/src/main/scala/org/apache/spark/deploy/yarn/ApplicationMaster.scala +++ b/yarn/common/src/main/scala/org/apache/spark/deploy/yarn/ApplicationMaster.scala @@ -126,8 +126,13 @@ private[spark] class ApplicationMaster(args: ApplicationMasterArguments, Option(diagnostics).map(msg => s" (diag message: $msg)").getOrElse("")) finished = true reporterThread.interrupt() - reporterThread.join() - client.shutdown(status, diagnostics) + try { + if (Thread.currentThread() != reporterThread) { + reporterThread.join() + } + } finally { + client.shutdown(status, diagnostics) + } } }