[ https://issues.apache.org/jira/browse/GEODE-7980?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mario Kevo reassigned GEODE-7980: --------------------------------- Assignee: Mario Kevo > Incorrect member count in rebalance output when rebalancing colocated regions > ------------------------------------------------------------------------------ > > Key: GEODE-7980 > URL: https://issues.apache.org/jira/browse/GEODE-7980 > Project: Geode > Issue Type: Bug > Reporter: Donal Evans > Assignee: Mario Kevo > Priority: Major > > When colocated regions are present during rebalance, incorrect member counts > are reported in the rebalance results: > > {code:java} > [vm0] [info 2020/04/10 11:28:50.895 PDT <RebalanceCommand1> tid=0x56] > Rebalanced partition regions /childRegion > [vm0] Total bytes in all redundant bucket copies created during this > rebalance = 0 > [vm0] Total time (in milliseconds) spent creating redundant bucket copies > during this rebalance = 0 > [vm0] Total number of redundant copies created during this rebalance = 0 > [vm0] Total bytes in buckets moved during this rebalance = 0 > [vm0] Total time (in milliseconds) spent moving buckets during this > rebalance = 0 > [vm0] Total number of buckets moved during this rebalance = 0 > [vm0] Total time (in milliseconds) spent switching the primary state of > buckets during this rebalance = 0 > [vm0] Total primaries transferred during this rebalance = 0 > [vm0] Total time (in milliseconds) for this rebalance = 0 > [vm0] Total number of members in system on which rebalance is executed = 0 > [vm0] [info 2020/04/10 11:28:50.896 PDT <RebalanceCommand1> tid=0x56] > Rebalanced partition regions /parentRegion > [vm0] Total bytes in all redundant bucket copies created during this > rebalance = 0 > [vm0] Total time (in milliseconds) spent creating redundant bucket copies > during this rebalance = 0 > [vm0] Total number of redundant copies created during this rebalance = 0 > [vm0] Total bytes in buckets moved during this rebalance = 18426 > [vm0] Total time (in milliseconds) spent moving buckets during this > rebalance = 2715 > [vm0] Total number of buckets moved during this rebalance = 132 > [vm0] Total time (in milliseconds) spent switching the primary state of > buckets during this rebalance = 0 > [vm0] Total primaries transferred during this rebalance = 0 > [vm0] Total time (in milliseconds) for this rebalance = 5506 > [vm0] Total number of members in system on which rebalance is executed = 4 > {code} > > > A test to reproduce the issue is provided below. > {code:java} > public class RebalanceMembersColocationTest { > public static final String PARENT_REGION_NAME = "parentRegion"; > public static final String CHILD_REGION_NAME = "childRegion"; > @Rule > public ClusterStartupRule cluster = new ClusterStartupRule(); > @Rule > public GfshCommandRule gfsh = new GfshCommandRule(); > @Test > public void testRebalanceResultOutputMemberCountWIthColocatedRegions() > throws Exception { > MemberVM locator = cluster.startLocatorVM(0); > MemberVM server1 = cluster.startServerVM(1, locator.getPort()); > MemberVM server2 = cluster.startServerVM(2, locator.getPort()); > server1.invoke(() -> { > Region<Object, Object> parentRegion = > Objects.requireNonNull(ClusterStartupRule.getCache()) > > .createRegionFactory(RegionShortcut.PARTITION).create(PARENT_REGION_NAME); > IntStream.range(0, 500).forEach(i -> parentRegion.put("key" + i, > "value" + 1)); > PartitionAttributesImpl attributes = new PartitionAttributesImpl(); > attributes.setColocatedWith(PARENT_REGION_NAME); > Region<Object, Object> childRegion = > Objects.requireNonNull(ClusterStartupRule.getCache()) > > .createRegionFactory(RegionShortcut.PARTITION).setPartitionAttributes(attributes) > .create(CHILD_REGION_NAME); > IntStream.range(0, 500).forEach(i -> childRegion.put("key" + i, "value" > + 1)); > }); > server2.invoke(() -> { > Objects.requireNonNull(ClusterStartupRule.getCache()) > > .createRegionFactory(RegionShortcut.PARTITION).create(PARENT_REGION_NAME); > PartitionAttributesImpl attributes = new PartitionAttributesImpl(); > attributes.setColocatedWith(PARENT_REGION_NAME); > Objects.requireNonNull(ClusterStartupRule.getCache()) > > .createRegionFactory(RegionShortcut.PARTITION).setPartitionAttributes(attributes) > .create(CHILD_REGION_NAME); > }); > locator.waitUntilRegionIsReadyOnExactlyThisManyServers("/" + > PARENT_REGION_NAME, 2); > locator.waitUntilRegionIsReadyOnExactlyThisManyServers("/" + > CHILD_REGION_NAME, 2); > gfsh.connectAndVerify(locator); > Map<String, List<String>> rebalanceResult = > gfsh.executeAndAssertThat("rebalance") > .statusIsSuccess().hasTableSection().getActual().getContent(); > assertThat(rebalanceResult.get("Value").get(9)).isEqualTo("2"); > } > } > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)