From a4ef4a52acd60fbe4cdd2d9c136ff9e9f5dd1203 Mon Sep 17 00:00:00 2001 From: Chia-Ping Tsai Date: Thu, 8 Jun 2017 16:16:56 +0800 Subject: [PATCH] HBASE-18193 Master web UI presents the incorrect number of regions --- .../hadoop/hbase/master/assignment/RegionStates.java | 4 +++- .../hadoop/hbase/client/TestAsyncRegionAdminApi.java | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStates.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStates.java index 082e171099..32be134287 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStates.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStates.java @@ -686,7 +686,9 @@ public class RegionStates { } for (RegionStateNode node: regionsMap.values()) { - tableRegions.get(node.getState()).add(node.getRegionInfo()); + if (node.getTable().equals(tableName)) { + tableRegions.get(node.getState()).add(node.getRegionInfo()); + } } return tableRegions; } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.java index 17a6d9b3a6..3bdd5fdc94 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.java @@ -417,6 +417,25 @@ public class TestAsyncRegionAdminApi extends TestAsyncAdminBase { } @Test + public void testGetRegionByStateOfTable() throws Exception { + final TableName tableName = TableName.valueOf("testGetRegionByStateOfTable"); + try { + HRegionInfo hri = createTableAndGetOneRegion(tableName); + + RegionStates regionStates = + TEST_UTIL.getHBaseCluster().getMaster().getAssignmentManager().getRegionStates(); + assertTrue(regionStates.getRegionByStateOfTable(tableName) + .get(RegionState.State.OPEN) + .contains(hri)); + assertFalse(regionStates.getRegionByStateOfTable(TableName.valueOf("I_am_the_phantom")) + .get(RegionState.State.OPEN) + .contains(hri)); + } finally { + TEST_UTIL.deleteTable(tableName); + } + } + + @Test public void testMoveRegion() throws Exception { final TableName tableName = TableName.valueOf("testMoveRegion"); try { -- 2.11.0 (Apple Git-81)