drill-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From j..@apache.org
Subject [1/5] drill git commit: DRILL-4964: Make Drill reconnect to hive metastore after hive metastore is restarted.
Date Sun, 30 Oct 2016 15:23:21 GMT
Repository: drill
Updated Branches:
  refs/heads/master 03e8f9f3e -> 1e6fa00cd


DRILL-4964: Make Drill reconnect to hive metastore after hive metastore is restarted.

Drill fails to connect to hive metastore after hive metastore is restarted unless drillbits
are restarted.

Changes: For methods DrillHiveMetaStoreClient.getAllDatabases() and DrillHiveMetaStoreClient.getAllTables(),
the HiveMetaStoreClient wraps MetaException and TException both into MetaException. In case
of connection
failure which is thrown as TException it is difficult to categorize at DrillClient level.
The fix is to
close older connection and reconnect in case of these 2 api's. In all other cases proper set
of exceptions
are thrown where we can handle each one individually.

close apache/drill#628


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

Branch: refs/heads/master
Commit: ca3733e38197f77c6bd7f8b7e03cdd9f5dd87f18
Parents: 03e8f9f
Author: Sorabh Hamirwasia <shamirwasia@maprtech.com>
Authored: Tue Oct 25 18:52:01 2016 -0700
Committer: Jinfeng Ni <jni@apache.org>
Committed: Sat Oct 29 21:52:21 2016 -0700

----------------------------------------------------------------------
 .../exec/store/hive/DrillHiveMetaStoreClient.java | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/drill/blob/ca3733e3/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/DrillHiveMetaStoreClient.java
----------------------------------------------------------------------
diff --git a/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/DrillHiveMetaStoreClient.java
b/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/DrillHiveMetaStoreClient.java
index 2fe291b..d7ba659 100644
--- a/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/DrillHiveMetaStoreClient.java
+++ b/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/DrillHiveMetaStoreClient.java
@@ -204,8 +204,12 @@ public abstract class DrillHiveMetaStoreClient extends HiveMetaStoreClient
{
     try {
       return mClient.getAllDatabases();
     } catch (MetaException e) {
-      throw e;
-    } catch (TException e) {
+      /*
+         HiveMetaStoreClient is encapsulating both the MetaException/TExceptions inside MetaException.
+         Since we don't have good way to differentiate, we will close older connection and
retry once.
+         This is only applicable for getAllTables and getAllDatabases method since other
methods are
+         properly throwing correct exceptions.
+      */
       logger.warn("Failure while attempting to get hive databases. Retries once.", e);
       try {
         mClient.close();
@@ -222,9 +226,13 @@ public abstract class DrillHiveMetaStoreClient extends HiveMetaStoreClient
{
       throws TException {
     try {
       return mClient.getAllTables(dbName);
-    } catch (MetaException | UnknownDBException e) {
-      throw e;
-    } catch (TException e) {
+    } catch (MetaException e) {
+      /*
+         HiveMetaStoreClient is encapsulating both the MetaException/TExceptions inside MetaException.
+         Since we don't have good way to differentiate, we will close older connection and
retry once.
+         This is only applicable for getAllTables and getAllDatabases method since other
methods are
+         properly throwing correct exceptions.
+      */
       logger.warn("Failure while attempting to get hive tables. Retries once.", e);
       try {
         mClient.close();


Mime
View raw message