From 79a8b9072cdfb816f7d87115134d88e4b742876e Mon Sep 17 00:00:00 2001 From: Michael Stack Date: Fri, 15 Dec 2017 13:57:16 -0800 Subject: [PATCH] HBASE-19527 Make ExecutorService threads daemon=true Set the ProcedureExcecutor worker threads as daemon. Ditto for the timeout thread. Remove hack from TestRegionsOnMasterOptions that was put in place because the test would not go down. --- .../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java | 2 ++ .../java/org/apache/hadoop/hbase/executor/ExecutorService.java | 2 +- .../hbase/master/balancer/TestRegionsOnMasterOptions.java | 10 ---------- 3 files changed, 3 insertions(+), 11 deletions(-) diff --git a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java index 069bf2832c..7a964a8553 100644 --- a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java +++ b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java @@ -1710,6 +1710,7 @@ public class ProcedureExecutor { public WorkerThread(final ThreadGroup group) { super(group, "ProcExecWrkr-" + workerId.incrementAndGet()); + setDaemon(true); } @Override @@ -1784,6 +1785,7 @@ public class ProcedureExecutor { public TimeoutExecutorThread(final ThreadGroup group) { super(group, "ProcExecTimeout"); + setDaemon(true); } @Override diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/executor/ExecutorService.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/executor/ExecutorService.java index d04956bfc2..342d44144a 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/executor/ExecutorService.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/executor/ExecutorService.java @@ -178,7 +178,7 @@ public class ExecutorService { // name the threads for this threadpool ThreadFactoryBuilder tfb = new ThreadFactoryBuilder(); tfb.setNameFormat(this.name + "-%d"); - // TODO: Should these executors be daemon threads? + tfb.setDaemon(true); this.threadPoolExecutor.setThreadFactory(tfb.build()); } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.java index 8f0688654a..51649e6e24 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRegionsOnMasterOptions.java @@ -23,7 +23,6 @@ import org.apache.hadoop.hbase.client.Table; import org.apache.hadoop.hbase.master.HMaster; import org.apache.hadoop.hbase.master.LoadBalancer; import org.apache.hadoop.hbase.regionserver.HRegion; -import org.apache.hadoop.hbase.regionserver.Region; import org.apache.hadoop.hbase.testclassification.MediumTests; import org.apache.hadoop.hbase.util.JVMClusterUtil; import org.apache.hadoop.hbase.util.Threads; @@ -196,15 +195,6 @@ public class TestRegionsOnMasterOptions { // still only carry system regions post crash. assertEquals(masterCount, mNewActualCount); } - // Disable balancer and wait till RIT done else cluster won't go down. - TEST_UTIL.getAdmin().balancerSwitch(false, true); - while (true) { - if (!TEST_UTIL.getHBaseCluster().getMaster().getAssignmentManager(). - isMetaRegionInTransition()) { - break; - } - Threads.sleep(10); - } } finally { LOG.info("Running shutdown of cluster"); TEST_UTIL.shutdownMiniCluster(); -- 2.11.0 (Apple Git-81)