You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by da...@apache.org on 2016/04/07 23:02:29 UTC

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

Repository: hive
Updated Branches:
  refs/heads/branch-1 4ac966cd8 -> bcbc41526


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/bcbc4152
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/bcbc4152
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/bcbc4152

Branch: refs/heads/branch-1
Commit: bcbc41526b9562a406899731f62bf55825130c6e
Parents: 4ac966c
Author: Daniel Dai <da...@hortonworks.com>
Authored: Thu Apr 7 14:03:01 2016 -0700
Committer: Daniel Dai <da...@hortonworks.com>
Committed: Thu Apr 7 14:03:01 2016 -0700

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


http://git-wip-us.apache.org/repos/asf/hive/blob/bcbc4152/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 0392eb5..65f7f52 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/bcbc4152/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 b2bc71e..5014f1d 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
@@ -407,6 +407,9 @@ public class Driver implements CommandProcessor {
       // Initialize the transaction manager.  This must be done before analyze is called.
       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() {
@@ -1930,10 +1933,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 {