[ https://issues.apache.org/jira/browse/HBASE-25092?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Bo Cui updated HBASE-25092: --------------------------- Description: https://github.com/apache/hbase/blob/b2f2c79d8fa18fb691e669419004cc5168b0838d/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.java#L216 when fallback is enabled, servers does not contain the current group's rs, and contains the rs of other group, region will be assigend to other group, but assignments already contains targetRS, and then assignments.putAll overwrites old entry {code:java} this.internalBalancer.retainAssignment(currentAssignmentMap, candidateList) .forEach((serverName, regionInfos) -> { assignments.computeIfAbsent(serverName, s -> new ArrayList<>()) .addAll(regionInfos); }); {code} the issue exists only in the branch-2. was: https://github.com/apache/hbase/blob/b2f2c79d8fa18fb691e669419004cc5168b0838d/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.java#L216 when fallbak is enabled, servers does not contain the current group's rs, and contains the rs of other group, region will be assigend to other group, but assignments already contains targetRS, and then assignments.putAll overwrites old entry {code:java} this.internalBalancer.retainAssignment(currentAssignmentMap, candidateList) .forEach((serverName, regionInfos) -> { assignments.computeIfAbsent(serverName, s -> new ArrayList<>()) .addAll(regionInfos); }); {code} the issue exists only in the branch-2. > RSGroupBalancer#assignments lost some regionPlans > ------------------------------------------------- > > Key: HBASE-25092 > URL: https://issues.apache.org/jira/browse/HBASE-25092 > Project: HBase > Issue Type: Bug > Components: rsgroup > Affects Versions: 2.3.1, 2.2.3 > Reporter: Bo Cui > Priority: Major > > https://github.com/apache/hbase/blob/b2f2c79d8fa18fb691e669419004cc5168b0838d/hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.java#L216 > when fallback is enabled, servers does not contain the current group's rs, > and contains the rs of other group, region will be assigend to other group, > but assignments already contains targetRS, and then assignments.putAll > overwrites old entry > {code:java} > this.internalBalancer.retainAssignment(currentAssignmentMap, candidateList) > .forEach((serverName, regionInfos) -> { > assignments.computeIfAbsent(serverName, s -> new > ArrayList<>()) > .addAll(regionInfos); > }); > {code} > the issue exists only in the branch-2. -- This message was sent by Atlassian Jira (v8.3.4#803005)