From 130d6a1f15ea186a807bd13f77f33cd6147ee88f Mon Sep 17 00:00:00 2001 From: Rushabh Shah Date: Tue, 25 May 2021 23:03:23 -0400 Subject: [PATCH] HBASE-25887 Wait for appendExecutor to shutdown running tasks (#3264) Co-authored-by: Rushabh Signed-off-by: Viraj Jasani Signed-off-by: Bharath Vissapragada --- .../org/apache/hadoop/hbase/regionserver/wal/FSHLog.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/FSHLog.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/FSHLog.java index e9aac92a880..bb09186e29b 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/FSHLog.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/FSHLog.java @@ -1098,6 +1098,9 @@ public class FSHLog implements WAL { @Override public void shutdown() throws IOException { if (shutdown.compareAndSet(false, true)) { + // Close FSHlog instance before shutting down disruptor. This will make sure we will not + // add more entries to ring buffer (via append) while we disruptor#shutdown is in progress. + this.closed = true; try { // Prevent all further flushing and rolling. closeBarrier.stopAndDrainOps(); @@ -1129,7 +1132,7 @@ public class FSHLog implements WAL { i.logCloseRequested(); } } - this.closed = true; + if (LOG.isDebugEnabled()) { LOG.debug("Closing WAL writer in " + FSUtils.getPath(fullPathLogDir)); }