Repository: spark
Updated Branches:
  refs/heads/master d009da2f5 -> 93c7650ab


[SPARK-9522] [SQL] SparkSubmit process can not exit if kill application when 
HiveThriftServer was starting

When we start HiveThriftServer, we will start SparkContext first, then start 
HiveServer2, if we kill application while HiveServer2 is starting then 
SparkContext will stop successfully, but SparkSubmit process can not exit.

Author: linweizhong <[email protected]>

Closes #7853 from Sephiroth-Lin/SPARK-9522.


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

Branch: refs/heads/master
Commit: 93c7650ab60a839a9cbe8b4ea1d5eda93e53ebe0
Parents: d009da2
Author: linweizhong <[email protected]>
Authored: Thu Sep 17 22:25:24 2015 -0700
Committer: Yin Huai <[email protected]>
Committed: Thu Sep 17 22:25:24 2015 -0700

----------------------------------------------------------------------
 core/src/main/scala/org/apache/spark/SparkContext.scala        | 2 +-
 .../apache/spark/sql/hive/thriftserver/HiveThriftServer2.scala | 6 ++++++
 2 files changed, 7 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/spark/blob/93c7650a/core/src/main/scala/org/apache/spark/SparkContext.scala
----------------------------------------------------------------------
diff --git a/core/src/main/scala/org/apache/spark/SparkContext.scala 
b/core/src/main/scala/org/apache/spark/SparkContext.scala
index 9c32187..ebd8e94 100644
--- a/core/src/main/scala/org/apache/spark/SparkContext.scala
+++ b/core/src/main/scala/org/apache/spark/SparkContext.scala
@@ -97,7 +97,7 @@ class SparkContext(config: SparkConf) extends Logging with 
ExecutorAllocationCli
 
   val startTime = System.currentTimeMillis()
 
-  private val stopped: AtomicBoolean = new AtomicBoolean(false)
+  private[spark] val stopped: AtomicBoolean = new AtomicBoolean(false)
 
   private def assertNotStopped(): Unit = {
     if (stopped.get()) {

http://git-wip-us.apache.org/repos/asf/spark/blob/93c7650a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/HiveThriftServer2.scala
----------------------------------------------------------------------
diff --git 
a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/HiveThriftServer2.scala
 
b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/HiveThriftServer2.scala
index dd9fef9..a0643ce 100644
--- 
a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/HiveThriftServer2.scala
+++ 
b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/HiveThriftServer2.scala
@@ -93,6 +93,12 @@ object HiveThriftServer2 extends Logging {
       } else {
         None
       }
+      // If application was killed before HiveThriftServer2 start successfully 
then SparkSubmit
+      // process can not exit, so check whether if SparkContext was stopped.
+      if (SparkSQLEnv.sparkContext.stopped.get()) {
+        logError("SparkContext has stopped even if HiveServer2 has started, so 
exit")
+        System.exit(-1)
+      }
     } catch {
       case e: Exception =>
         logError("Error starting HiveThriftServer2", e)


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to