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

lihaosky pushed a commit to branch release-2.3
in repository https://gitbox.apache.org/repos/asf/flink.git


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

commit 9e7dc04b95683855efb41693768e6b3655ea7aae
Author: Yuepeng Pan <[email protected]>
AuthorDate: Sun Jun 14 01:36:41 2026 +0800

    [FLINK-39917][tests] Wait for RM disconnect log in 
JobMasterTriggerSavepointITCase (#28406) (#28417)
    
    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)
    (cherry picked from commit 4f6db6ea8a58f1109b4aa8c8333512d3eb0e655f)
    
    Co-authored-by: Martijn Visser 
<[email protected]>
---
 .../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 f19629d1577..a6d890172e2 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