Repository: hive
Updated Branches:
  refs/heads/branch-2.0 5c66ed670 -> 237729430


HIVE-12741: HS2 ShutdownHookManager holds extra of Driver instance in 
master/branch-2.0 (Thejas Nair, reviewed by Daniel Dai)


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

Branch: refs/heads/branch-2.0
Commit: 23772943093affc49eeda5655205c6ae9cc2d26c
Parents: 5c66ed6
Author: Gunther Hagleitner <gunt...@apache.org>
Authored: Thu Dec 24 13:18:59 2015 -0800
Committer: Gunther Hagleitner <gunt...@apache.org>
Committed: Thu Dec 24 13:19:39 2015 -0800

----------------------------------------------------------------------
 .../java/org/apache/hive/common/util/ShutdownHookManager.java  | 5 ++++-
 ql/src/java/org/apache/hadoop/hive/ql/Driver.java              | 6 +++---
 2 files changed, 7 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/23772943/common/src/java/org/apache/hive/common/util/ShutdownHookManager.java
----------------------------------------------------------------------
diff --git 
a/common/src/java/org/apache/hive/common/util/ShutdownHookManager.java 
b/common/src/java/org/apache/hive/common/util/ShutdownHookManager.java
index b5f7e69..5efeda9 100644
--- a/common/src/java/org/apache/hive/common/util/ShutdownHookManager.java
+++ b/common/src/java/org/apache/hive/common/util/ShutdownHookManager.java
@@ -172,9 +172,12 @@ public class ShutdownHookManager {
    *
    * @param shutdownHook shutdownHook to remove.
    * @return TRUE if the shutdownHook was registered and removed,
-   * FALSE otherwise.
+   * FALSE otherwise (including when shutdownHook == null)
    */
   public static boolean removeShutdownHook(Runnable shutdownHook) {
+    if (shutdownHook == null) {
+      return false;
+    }
     return MGR.removeShutdownHookInternal(shutdownHook);
   }
 

http://git-wip-us.apache.org/repos/asf/hive/blob/23772943/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/Driver.java 
b/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
index 2deeb48..485e901 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
@@ -420,6 +420,8 @@ public class Driver implements CommandProcessor {
       final HiveTxnManager txnManager = SessionState.get().initTxnMgr(conf);
       // In case when user Ctrl-C twice to kill Hive CLI JVM, we want to 
release locks
 
+      // if compile is being called multiple times, clear the old shutdownhook
+      ShutdownHookManager.removeShutdownHook(shutdownRunner);
       shutdownRunner = new Runnable() {
         @Override
         public void run() {
@@ -1955,10 +1957,8 @@ public class Driver implements CommandProcessor {
         LOG.warn("Exception when releasing locking in destroy: " +
             e.getMessage());
       }
-      if (shutdownRunner != null) {
-        ShutdownHookManager.removeShutdownHook(shutdownRunner);
-      }
     }
+    ShutdownHookManager.removeShutdownHook(shutdownRunner);
   }
 
   public org.apache.hadoop.hive.ql.plan.api.Query getQueryPlan() throws 
IOException {

Reply via email to