denis-chudov commented on code in PR #5468: URL: https://github.com/apache/ignite-3/pull/5468#discussion_r2012115060
########## modules/distribution-zones/src/integrationTest/java/org/apache/ignite/internal/distributionzones/ItDistributionZoneMetaStorageCompactionTest.java: ########## @@ -130,6 +141,42 @@ public void testCompaction() throws InterruptedException { assertEquals(dataNodesBeforeNodeStop, dataNodes(ignite, zoneId, beforeNodesStop)); } + @Test + public void testCompactionDuringRebalancing() throws InterruptedException { + sql("create zone " + ZONE_NAME + " with partitions=1, storage_profiles='" + DEFAULT_STORAGE_PROFILE + "'" + + ", data_nodes_auto_adjust_scale_down=0"); + sql("create table " + TABLE_NAME + " (id int primary key) zone " + ZONE_NAME); + sql("insert into " + TABLE_NAME + " values (1)"); + sql("alter zone " + ZONE_NAME + " set replicas=2"); + + IgniteImpl ignite = unwrapIgniteImpl(CLUSTER.node(0)); + + int zoneId = ignite.catalogManager().activeCatalog(ignite.clock().now().longValue()).zone(ZONE_NAME).id(); + int tableId = ignite.catalogManager().activeCatalog(ignite.clock().now().longValue()).tables() + .stream() + .filter(t -> t.name().equals(TABLE_NAME)) + .findFirst() + .orElseThrow() + .id(); + + MetaStorageManager metaStorageManager = ignite.metaStorageManager(); + + // Wait for the rebalancing to finish. + assertTrue(waitForCondition(() -> { Review Comment: Here the pending queue is check for `tombstone`, not for emptyness, so it should work correctly ########## modules/distribution-zones/src/integrationTest/java/org/apache/ignite/internal/distributionzones/ItDistributionZoneMetaStorageCompactionTest.java: ########## @@ -130,6 +141,42 @@ public void testCompaction() throws InterruptedException { assertEquals(dataNodesBeforeNodeStop, dataNodes(ignite, zoneId, beforeNodesStop)); } + @Test + public void testCompactionDuringRebalancing() throws InterruptedException { + sql("create zone " + ZONE_NAME + " with partitions=1, storage_profiles='" + DEFAULT_STORAGE_PROFILE + "'" + + ", data_nodes_auto_adjust_scale_down=0"); + sql("create table " + TABLE_NAME + " (id int primary key) zone " + ZONE_NAME); + sql("insert into " + TABLE_NAME + " values (1)"); + sql("alter zone " + ZONE_NAME + " set replicas=2"); + + IgniteImpl ignite = unwrapIgniteImpl(CLUSTER.node(0)); + + int zoneId = ignite.catalogManager().activeCatalog(ignite.clock().now().longValue()).zone(ZONE_NAME).id(); + int tableId = ignite.catalogManager().activeCatalog(ignite.clock().now().longValue()).tables() + .stream() + .filter(t -> t.name().equals(TABLE_NAME)) + .findFirst() + .orElseThrow() + .id(); + + MetaStorageManager metaStorageManager = ignite.metaStorageManager(); + + // Wait for the rebalancing to finish. + assertTrue(waitForCondition(() -> { Review Comment: Here the pending queue is checked for `tombstone`, not for emptyness, so it should work correctly -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: notifications-unsubscr...@ignite.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org