From 38ac7e26ae0e3dacdeba23e1e9d2215ee2649849 Mon Sep 17 00:00:00 2001 From: Duo Zhang Date: Thu, 15 Oct 2020 10:22:14 +0800 Subject: [PATCH] HBASE-25186 TestMasterRegionOnTwoFileSystems is failing after HBASE-25065 (#2544) Signed-off-by: Ramkrishna --- .../hbase/master/region/MasterRegionWALRoller.java | 6 ++++-- .../apache/hadoop/hbase/wal/AbstractWALRoller.java | 12 +++++++----- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/region/MasterRegionWALRoller.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/region/MasterRegionWALRoller.java index ef3dd121133..bba6611c68d 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/region/MasterRegionWALRoller.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/region/MasterRegionWALRoller.java @@ -29,7 +29,6 @@ import org.apache.hadoop.hbase.regionserver.wal.AbstractFSWAL; import org.apache.hadoop.hbase.regionserver.wal.WALUtil; import org.apache.hadoop.hbase.wal.AbstractFSWALProvider; import org.apache.hadoop.hbase.wal.AbstractWALRoller; -import org.apache.hadoop.hbase.wal.WAL; import org.apache.hadoop.hbase.wal.WALFactory; import org.apache.yetus.audience.InterfaceAudience; import org.slf4j.Logger; @@ -68,8 +67,11 @@ public final class MasterRegionWALRoller extends AbstractWALRoller { } @Override - protected void afterRoll(WAL wal) { + protected void afterWALArchive(Path oldPath, Path newPath) { // move the archived WAL files to the global archive path + // here we do not use the newPath directly, so that even if we fail to move some of the + // newPaths, we are still safe because every time we will get all the files under the archive + // directory. try { MasterRegionUtils.moveFilesUnderDir(fs, walArchiveDir, globalWALArchiveDir, archivedWALSuffix); diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/AbstractWALRoller.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/AbstractWALRoller.java index a5a0ee3a322..4d89c475384 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/AbstractWALRoller.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/AbstractWALRoller.java @@ -28,6 +28,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.atomic.AtomicBoolean; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.Path; import org.apache.hadoop.hbase.Abortable; import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.regionserver.wal.AbstractFSWAL; @@ -86,6 +87,11 @@ public abstract class AbstractWALRoller extends Thread AbstractWALRoller.this.notifyAll(); } } + + @Override + public void postLogArchive(Path oldPath, Path newPath) throws IOException { + afterWALArchive(oldPath, newPath); + } }); } } @@ -190,7 +196,6 @@ public abstract class AbstractWALRoller extends Thread LOG.warn("WAL has been closed. Skipping rolling of writer and just remove it", e); iter.remove(); } - afterRoll(wal); } } catch (FailedLogCloseException | ConnectException e) { abort("Failed log close in log roller", e); @@ -206,10 +211,7 @@ public abstract class AbstractWALRoller extends Thread LOG.info("LogRoller exiting."); } - /** - * Called after we finish rolling the give {@code wal}. - */ - protected void afterRoll(WAL wal) { + protected void afterWALArchive(Path oldPath, Path newPath) { } /**