From a3dfe00d43376a85bdfcb51324eb2d0796ff0231 Mon Sep 17 00:00:00 2001 From: Kota-SH Date: Tue, 24 Mar 2026 10:14:14 -0500 Subject: [PATCH] HBASE-30014: refresh_meta not working due to regionNode lock --- .../hbase/master/assignment/AssignmentManager.java | 10 +++++++--- .../hbase/util/TestCoprocessorConfigurationUtil.java | 4 ++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java index fbe89c3eb32a..21692083bd32 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java @@ -797,8 +797,10 @@ private TransitRegionStateProcedure createAssignProcedure(RegionInfo regionInfo, preTransitCheck(regionNode, STATES_EXPECTED_ON_ASSIGN); } assert regionNode.getProcedure() == null; - return regionNode.setProcedure( + TransitRegionStateProcedure proc = regionNode.setProcedure( TransitRegionStateProcedure.assign(getProcedureEnvironment(), regionInfo, sn)); + regionInTransitionTracker.handleRegionStateNodeOperation(regionNode); + return proc; } finally { regionNode.unlock(); } @@ -813,8 +815,10 @@ private TransitRegionStateProcedure createAssignProcedure(RegionStateNode region ServerName targetServer) { regionNode.lock(); try { - return regionNode.setProcedure(TransitRegionStateProcedure.assign(getProcedureEnvironment(), - regionNode.getRegionInfo(), targetServer)); + TransitRegionStateProcedure proc = regionNode.setProcedure(TransitRegionStateProcedure + .assign(getProcedureEnvironment(), regionNode.getRegionInfo(), targetServer)); + regionInTransitionTracker.handleRegionStateNodeOperation(regionNode); + return proc; } finally { regionNode.unlock(); } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestCoprocessorConfigurationUtil.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestCoprocessorConfigurationUtil.java index eeda71949824..16b68388ed57 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestCoprocessorConfigurationUtil.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestCoprocessorConfigurationUtil.java @@ -34,9 +34,13 @@ import org.apache.hadoop.hbase.security.access.MasterReadOnlyController; import org.apache.hadoop.hbase.security.access.RegionReadOnlyController; import org.apache.hadoop.hbase.security.access.RegionServerReadOnlyController; +import org.apache.hadoop.hbase.testclassification.CoprocessorTests; +import org.apache.hadoop.hbase.testclassification.SmallTests; import org.junit.Before; import org.junit.Test; +import org.junit.experimental.categories.Category; +@Category({ CoprocessorTests.class, SmallTests.class }) public class TestCoprocessorConfigurationUtil { private Configuration conf;