From e14ad541727d74cba5b0aedef0d02dc8c517968a Mon Sep 17 00:00:00 2001 From: Michael Stack Date: Thu, 18 Jan 2018 11:12:31 -0800 Subject: [PATCH] HBASE-19822 HFileCleaner threads stick around after shutdown stuck on queue#take Interrupt wait on queue when cancel is called. --- .../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.java index f20dcc4245..640c8f794f 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/cleaner/HFileCleaner.java @@ -231,7 +231,7 @@ public class HFileCleaner extends CleanerChore { try { task = queue.take(); } catch (InterruptedException e) { - LOG.debug("Interrupted while trying to take a task from queue", e); + LOG.trace("Interrupted while trying to take a task from queue", e); break; } if (task != null) { @@ -445,4 +445,12 @@ public class HFileCleaner extends CleanerChore { } return updated; } + + @Override + public synchronized void cancel(boolean mayInterruptIfRunning) { + super.cancel(mayInterruptIfRunning); + for (Thread t: this.threads) { + t.interrupt(); + } + } } -- 2.11.0 (Apple Git-81)