diff --git a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java index fa044309694c..6799e69fb9f4 100644 --- a/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java +++ b/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java @@ -333,7 +333,7 @@ private synchronized void refresh(boolean forceOnline) throws IOException { // so it overwrites the default group loaded // from region group table or zk groupList.add(new RSGroupInfo(RSGroupInfo.DEFAULT_GROUP, - Sets.newHashSet(getDefaultServers()), + Sets.newHashSet(getDefaultServers(groupList)), orphanTables)); // populate the data @@ -479,9 +479,13 @@ private List getOnlineRS() throws IOException { } private List
getDefaultServers() throws IOException { + return getDefaultServers(listRSGroups() /* get from rsGroupMap */); + } + + private List
getDefaultServers(List rsGroupInfoList) throws IOException { // Build a list of servers in other groups than default group, from rsGroupMap Set
serverAddressesInOtherGroups = new HashSet<>(); - for (RSGroupInfo group : listRSGroups() /* get from rsGroupMap */) { + for (RSGroupInfo group : rsGroupInfoList) { if (!RSGroupInfo.DEFAULT_GROUP.equals(group.getName())) { // not default group serverAddressesInOtherGroups.addAll(group.getServers()); }