From 769bb0aff848a5863074c0e6eae8e9bc4c06efb6 Mon Sep 17 00:00:00 2001 From: Wei-Chiu Chuang Date: Thu, 5 Apr 2018 14:11:29 -0700 Subject: [PATCH] HBASE-20338 WALProcedureStore#recoverLease() should have fixed sleeps for retrying rollWriter() Rev03 to address Umesh's comments. --- .../apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.java b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.java index 8581d82..2403cfe 100644 --- a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.java +++ b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.java @@ -360,6 +360,7 @@ public class WALProcedureStore extends ProcedureStoreBase { try { LOG.trace("Starting WAL Procedure Store lease recovery"); FileStatus[] oldLogs = getLogFiles(); + int rollWriterRetries = 0; while (isRunning()) { // Get Log-MaxID and recover lease on old logs try { @@ -370,6 +371,11 @@ public class WALProcedureStore extends ProcedureStoreBase { continue; } + // Don't sleep before first roll writer attempt + if (++rollWriterRetries > 1) { + LOG.trace("Sleep {} ms before rolling", waitBeforeRoll); + Threads.sleepWithoutInterrupt(waitBeforeRoll); + } // Create new state-log if (!rollWriter(flushLogId + 1)) { // someone else has already created this log -- 2.5.3