From f5cbacdf9e29efd02ffb1121e29ab64a4f13f8b7 Mon Sep 17 00:00:00 2001 From: Anuj Sharma Date: Thu, 5 Mar 2026 16:56:59 +0530 Subject: [PATCH] HBASE-29961 Secondary cluster is unable to replayWAL for meta --- .../hbase/security/access/RegionReadOnlyController.java | 4 +++- .../access/TestReadOnlyControllerRegionObserver.java | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/RegionReadOnlyController.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/RegionReadOnlyController.java index ecd2dcedd645..411b4459f129 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/RegionReadOnlyController.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/RegionReadOnlyController.java @@ -339,7 +339,9 @@ public Result preIncrementAfterRowLock(ObserverContext ctx, RegionInfo info, Path edits) throws IOException { - internalReadOnlyGuard(); + if (!isOnMeta(ctx)) { + internalReadOnlyGuard(); + } RegionObserver.super.preReplayWALs(ctx, info, edits); } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestReadOnlyControllerRegionObserver.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestReadOnlyControllerRegionObserver.java index b2e53860124a..d7176b900552 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestReadOnlyControllerRegionObserver.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestReadOnlyControllerRegionObserver.java @@ -454,6 +454,12 @@ public void testPreReplayWALsReadOnlyException() throws IOException { regionReadOnlyController.preReplayWALs(ctx, info, edits); } + @Test + public void testPreReplayWALsReadOnlyMetaNoException() throws IOException { + mockOperationForMetaTable(); + regionReadOnlyController.preReplayWALs(ctx, info, edits); + } + @Test(expected = DoNotRetryIOException.class) public void testPreBulkLoadHFileReadOnlyException() throws IOException { regionReadOnlyController.preBulkLoadHFile(ctx, familyPaths);