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);
}
/**