This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-2.1 by this push:
     new 8f4dde8  HBASE-23125 TestRSGroupsAdmin2 is flaky
8f4dde8 is described below

commit 8f4dde830689d3597552b9ddaa87223c4c5c4422
Author: Duo Zhang <[email protected]>
AuthorDate: Mon Oct 7 19:46:05 2019 +0800

    HBASE-23125 TestRSGroupsAdmin2 is flaky
---
 .../hadoop/hbase/rsgroup/TestRSGroupsBase.java     | 38 ++++++++--------------
 1 file changed, 13 insertions(+), 25 deletions(-)

diff --git 
a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.java
 
b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.java
index 4a1b2f2..a7872e5 100644
--- 
a/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.java
+++ 
b/hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.java
@@ -40,8 +40,6 @@ import org.apache.hadoop.hbase.HBaseTestingUtility;
 import org.apache.hadoop.hbase.HColumnDescriptor;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.NamespaceDescriptor;
-import org.apache.hadoop.hbase.RegionMetrics;
-import org.apache.hadoop.hbase.ServerMetrics;
 import org.apache.hadoop.hbase.ServerName;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.TableNotFoundException;
@@ -64,6 +62,7 @@ import org.slf4j.LoggerFactory;
 import org.apache.hbase.thirdparty.com.google.common.collect.Lists;
 import org.apache.hbase.thirdparty.com.google.common.collect.Maps;
 import org.apache.hbase.thirdparty.com.google.common.collect.Sets;
+
 import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
 import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos;
 import 
org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetServerInfoRequest;
@@ -102,7 +101,7 @@ public abstract class TestRSGroupsBase {
     return RSGroupTestingUtil.addRSGroup(rsGroupAdmin, groupName, serverCount);
   }
 
-  void removeGroup(String groupName) throws IOException {
+  protected void removeGroup(String groupName) throws IOException {
     RSGroupInfo RSGroupInfo = rsGroupAdmin.getRSGroupInfo(groupName);
     rsGroupAdmin.moveTables(RSGroupInfo.getTables(), 
RSGroupInfo.DEFAULT_GROUP);
     rsGroupAdmin.moveServers(RSGroupInfo.getServers(), 
RSGroupInfo.DEFAULT_GROUP);
@@ -135,7 +134,7 @@ public abstract class TestRSGroupsBase {
     }
   }
 
-  public Map<TableName, List<String>> getTableRegionMap() throws IOException {
+  protected Map<TableName, List<String>> getTableRegionMap() throws 
IOException {
     Map<TableName, List<String>> map = Maps.newTreeMap();
     Map<TableName, Map<ServerName, List<String>>> tableServerRegionMap
         = getTableServerRegionMap();
@@ -150,28 +149,17 @@ public abstract class TestRSGroupsBase {
     return map;
   }
 
-  public Map<TableName, Map<ServerName, List<String>>> 
getTableServerRegionMap()
-      throws IOException {
+  protected Map<TableName, Map<ServerName, List<String>>> 
getTableServerRegionMap()
+    throws IOException {
     Map<TableName, Map<ServerName, List<String>>> map = Maps.newTreeMap();
-    ClusterMetrics status = 
TEST_UTIL.getHBaseClusterInterface().getClusterMetrics();
-    for (Map.Entry<ServerName, ServerMetrics> entry : 
status.getLiveServerMetrics().entrySet()) {
-      ServerName serverName = entry.getKey();
-      for(RegionMetrics rl : entry.getValue().getRegionMetrics().values()) {
-        TableName tableName = null;
-        try {
-          tableName = RegionInfo.getTable(rl.getRegionName());
-        } catch (IllegalArgumentException e) {
-          LOG.warn("Failed parse a table name from regionname=" +
-            Bytes.toStringBinary(rl.getRegionName()));
-          continue;
-        }
-        if(!map.containsKey(tableName)) {
-          map.put(tableName, new TreeMap<>());
-        }
-        if(!map.get(tableName).containsKey(serverName)) {
-          map.get(tableName).put(serverName, new LinkedList<>());
-        }
-        map.get(tableName).get(serverName).add(rl.getNameAsString());
+    Admin admin = TEST_UTIL.getAdmin();
+    ClusterMetrics metrics =
+      admin.getClusterMetrics(EnumSet.of(ClusterMetrics.Option.LIVE_SERVERS));
+    for (ServerName serverName : metrics.getLiveServerMetrics().keySet()) {
+      for (RegionInfo region : admin.getRegions(serverName)) {
+        TableName tableName = region.getTable();
+        map.computeIfAbsent(tableName, k -> new TreeMap<>())
+          .computeIfAbsent(serverName, k -> new 
ArrayList<>()).add(region.getRegionNameAsString());
       }
     }
     return map;

Reply via email to