This is an automated email from the ASF dual-hosted git repository.

RocMarshal pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git


The following commit(s) were added to refs/heads/master by this push:
     new 4f6db6ea8a5 [FLINK-39917][tests] Wait for RM disconnect log in 
JobMasterTriggerSavepointITCase (#28406)
4f6db6ea8a5 is described below

commit 4f6db6ea8a58f1109b4aa8c8333512d3eb0e655f
Author: Martijn Visser <[email protected]>
AuthorDate: Sat Jun 13 11:00:08 2026 +0200

    [FLINK-39917][tests] Wait for RM disconnect log in 
JobMasterTriggerSavepointITCase (#28406)
    
    The test asserts the ResourceManager logged "Disconnect job manager ..."
    right after the job reaches CANCELED, but the JobMaster disconnects
    asynchronously afterwards, so the check can run before the event is
    logged. Wait for the logged event before verifying; the asserted pattern
    is unchanged and now shared with the wait predicate. Distinct from the
    earlier race fixed in FLINK-37821.
    
    Generated-by: Claude Opus 4.8 (1M context)
---
 .../jobmaster/JobMasterTriggerSavepointITCase.java      | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git 
a/flink-tests/src/test/java/org/apache/flink/runtime/jobmaster/JobMasterTriggerSavepointITCase.java
 
b/flink-tests/src/test/java/org/apache/flink/runtime/jobmaster/JobMasterTriggerSavepointITCase.java
index 90929d64571..f60ac333be2 100644
--- 
a/flink-tests/src/test/java/org/apache/flink/runtime/jobmaster/JobMasterTriggerSavepointITCase.java
+++ 
b/flink-tests/src/test/java/org/apache/flink/runtime/jobmaster/JobMasterTriggerSavepointITCase.java
@@ -94,6 +94,9 @@ class JobMasterTriggerSavepointITCase {
 
     private static volatile CountDownLatch triggerCheckpointLatch;
 
+    /** Prefix of the StandaloneResourceManager log line emitted when a 
JobMaster disconnects. */
+    private static final String DISCONNECT_JOB_MANAGER_LOG_PREFIX = 
"Disconnect job manager ";
+
     @TempDir protected File temporaryFolder;
 
     @RegisterExtension
@@ -284,7 +287,7 @@ class JobMasterTriggerSavepointITCase {
                 List.of(
                         "Registering job manager .*",
                         "Registered job manager .*",
-                        "Disconnect job manager .*"),
+                        DISCONNECT_JOB_MANAGER_LOG_PREFIX + ".*"),
                 "Registering TaskManager with ResourceID .*");
         assertKeyPresent(
                 MdcUtils.JOB_ID,
@@ -363,6 +366,18 @@ class JobMasterTriggerSavepointITCase {
         CommonTestUtils.waitUntilCondition(
                 () -> clusterClient.getJobStatus(jobGraph.getJobID()).get() == 
JobStatus.CANCELED,
                 600);
+        // The JobMaster disconnects from the ResourceManager asynchronously 
after CANCELED;
+        // wait for the logged event so verifyJobIdIsLogged does not race it.
+        CommonTestUtils.waitUntilCondition(
+                () ->
+                        standaloneResourceManagerLogging.getEvents().stream()
+                                .anyMatch(
+                                        e ->
+                                                e.getMessage()
+                                                        .getFormattedMessage()
+                                                        .startsWith(
+                                                                
DISCONNECT_JOB_MANAGER_LOG_PREFIX)),
+                600);
     }
 
     /**

Reply via email to