diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/tez/PerPoolTriggerValidatorRunnable.java ql/src/java/org/apache/hadoop/hive/ql/exec/tez/PerPoolTriggerValidatorRunnable.java index 8f29197c13..d1d2bfec58 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/tez/PerPoolTriggerValidatorRunnable.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/tez/PerPoolTriggerValidatorRunnable.java @@ -45,9 +45,9 @@ @Override public void run() { - try { - ScheduledExecutorService validatorExecutorService = Executors + ScheduledExecutorService validatorExecutorService = Executors .newScheduledThreadPool(sessionTriggerProviders.size()); + try { for (Map.Entry entry : sessionTriggerProviders.entrySet()) { String poolName = entry.getKey(); if (!poolValidators.containsKey(poolName)) { @@ -61,6 +61,8 @@ public void run() { } catch (Throwable t) { // if exception is thrown in scheduled tasks, no further tasks will be scheduled, hence this ugly catch LOG.warn(PerPoolTriggerValidatorRunnable.class.getSimpleName() + " caught exception.", t); + } finally { + validatorExecutorService.shutdown(); } } } diff --git standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java index 77d34047a4..32494ae257 100644 --- standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java +++ standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java @@ -1115,6 +1115,7 @@ public fb_status getStatus() { public void shutdown() { cleanupRawStore(); PerfLogger.getPerfLogger(false).cleanupPerfLogMetrics(); + ThreadPool.shutdown(); } @Override