This is an automated email from the ASF dual-hosted git repository. MartijnVisser pushed a commit to branch release-2.3 in repository https://gitbox.apache.org/repos/asf/flink.git
commit a200c6e7664c7ba201f88f792d845147c8616d68 Author: Efrat Levitan <[email protected]> AuthorDate: Thu Jul 30 15:10:02 2026 +0300 [FLINK-33186][tests] Fix flakiness in CheckpointAfterAllTasksFinishedITCase.testRestoreAfterSomeTasksFinished (#28800) There was traced the flakiness to task finished after the checkpoint plan was calculated but before triggerCheckpoint. The task is already removed from TaskExecutor#taskSlotTable So TaskExecutor#triggerCheckpoint fails the checkpoint with error 'TaskManager received a checkpoint request for unknown task <>'. Production systems are expected to tolerate an occasional checkpoint failure So we can address the flakiness without changes this known limitation for tasks finished mid checkpoint. the test provisions 2 sources passA that finishes quickly and passB that blocks forever and non-deterministically waits for at least one of passA subtasks to finish, which introduces the race. The fix here makes CheckpointAfterAllTasksFinishedITCase.testRestoreAfterSomeTasksFinished wait for all subtasks of passA to finish before triggering savepoint, to avoid the race but still achieve the test goal with passB subtasks still locking. --- .../flink/test/checkpointing/CheckpointAfterAllTasksFinishedITCase.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flink-tests/src/test/java/org/apache/flink/test/checkpointing/CheckpointAfterAllTasksFinishedITCase.java b/flink-tests/src/test/java/org/apache/flink/test/checkpointing/CheckpointAfterAllTasksFinishedITCase.java index 6ff385a8ba4..badf21f736d 100644 --- a/flink-tests/src/test/java/org/apache/flink/test/checkpointing/CheckpointAfterAllTasksFinishedITCase.java +++ b/flink-tests/src/test/java/org/apache/flink/test/checkpointing/CheckpointAfterAllTasksFinishedITCase.java @@ -112,7 +112,7 @@ class CheckpointAfterAllTasksFinishedITCase extends AbstractTestBase { miniCluster, jobGraph.getJobID(), findVertexByName(jobGraph, "passA -> Sink: sinkA").getID(), - false); + true); String savepointPath = miniCluster
