From 2625c67e732e5df4399e5ad2fdde4ae871f0674f Mon Sep 17 00:00:00 2001 From: Duo Zhang Date: Thu, 2 Jun 2022 23:55:23 +0800 Subject: [PATCH] HBASE-27046 The filenum in AbstractFSWAL should be monotone increasing (#4449) Signed-off-by: Xin Sun Signed-off-by: GeorryHuang (cherry picked from commit 313a37f7ac780a36b51064372868a31849df6727) --- .../apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.java | 6 +----- .../hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.java | 2 -- .../org/apache/hadoop/hbase/quotas/TestQuotaThrottle.java | 2 -- 3 files changed, 1 insertion(+), 9 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.java index 7b5b31bc455..c1864592ae3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.java @@ -596,12 +596,8 @@ public abstract class AbstractFSWAL implements WAL { * retrieve the next path to use for writing. Increments the internal filenum. */ private Path getNewPath() throws IOException { - this.filenum.set(EnvironmentEdgeManager.currentTime()); + this.filenum.set(Math.max(getFilenum() + 1, EnvironmentEdgeManager.currentTime())); Path newPath = getCurrentFileName(); - while (fs.exists(newPath)) { - this.filenum.incrementAndGet(); - newPath = getCurrentFileName(); - } return newPath; } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.java index 2d952b2a212..a7661c81d04 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.java @@ -43,11 +43,9 @@ import org.junit.After; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.ClassRule; -import org.junit.Ignore; import org.junit.Test; import org.junit.experimental.categories.Category; -@Ignore // disable for now, see HBASE-27045 @Category({ RegionServerTests.class, LargeTests.class }) public class TestClusterScopeQuotaThrottle { diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/quotas/TestQuotaThrottle.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/quotas/TestQuotaThrottle.java index 30c7036b7b8..1c94bd5263d 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/quotas/TestQuotaThrottle.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/quotas/TestQuotaThrottle.java @@ -44,13 +44,11 @@ import org.junit.After; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.ClassRule; -import org.junit.Ignore; import org.junit.Test; import org.junit.experimental.categories.Category; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -@Ignore // Disabled because flakey. Fails ~30% on a resource constrained GCE though not on Apache. @Category({ RegionServerTests.class, MediumTests.class }) public class TestQuotaThrottle {