diff --git a/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/distributed/disaster/ItHighAvailablePartitionsRecoveryByFilterUpdateTest.java b/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/distributed/disaster/ItHighAvailablePartitionsRecoveryByFilterUpdateTest.java index 37285d0049a..aaac93099f2 100644 --- a/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/distributed/disaster/ItHighAvailablePartitionsRecoveryByFilterUpdateTest.java +++ b/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/distributed/disaster/ItHighAvailablePartitionsRecoveryByFilterUpdateTest.java @@ -506,6 +506,9 @@ void testHaWhenAllVotingMembersAreLost() throws Exception { assertEquals(3, followers.size()); + // Set a high timeout to prevent multiple recovery events from firing when followers leave topology one by one. + changePartitionDistributionTimeout(node0, (int) TimeUnit.MINUTES.toSeconds(5)); + // Stop all followers. followers.forEach(n -> stopNode(n.consistentId())); @@ -516,6 +519,9 @@ void testHaWhenAllVotingMembersAreLost() throws Exception { IgniteImpl node = igniteImpl(nodeIndex(learners.iterator().next())); + // Trigger a single recovery event by setting timeout to 0. + changePartitionDistributionTimeout(node0, 0); + // Wait for the partition to become available on the learners. waitAndAssertStableAssignmentsOfPartitionEqualTo(node, HA_TABLE_NAME, Set.of(0), learners); }