sqd opened a new pull request, #29136:
URL: https://github.com/apache/flink/pull/29136
## What is the purpose of the change
GET /jobs/overview (backed by Dispatcher.requestMultipleJobDetails) queries
every registered JobMaster, but it swallows any failure. A running job whose
JobMaster fails or times out on requestJobDetails is therefore silently omitted
while the request still succeeds. Clients that use /jobs/overview as the source
of truth for job existence (e.g. the Flink Kubernetes Operator) conclude the
job is gone.
This pull request makes requestMultipleJobDetails fail the whole request
instead, with a FlinkException naming the job whose details could not be
retrieved, so an incomplete view is never reported as a successful one.
## Brief change log
- Dispatcher.requestMultipleJobDetails no longer uses the failure-swallowing
queryJobMastersForInformation; a failed requestJobDetails on any JobMaster
fails the combined future
- requestClusterOverview is unchanged (it only produces aggregate counts and
keeps the lenient behaviour)
- TestingJobManagerRunner.Builder gains setJobDetailsFutureFunction so a
test runner can return a failed requestJobDetails future; the existing
setJobDetailsFunction delegates to it
## Verifying this change
This change added tests and can be verified as follows:
- Added
DispatcherTest#testRequestMultipleJobDetails_doesNotSilentlyOmitJobWhoseJobMasterQueryFails:
registers two running jobs, one of whose JobMaster fails requestJobDetails
with a TimeoutException, and asserts the request either fails or lists both
jobs. The test fails on master (only one job returned) and passes with the fix.
- Existing DispatcherTest#testRequestMultipleJobDetails_* tests continue to
pass.
## Does this pull request potentially affect one of the following parts:
- Dependencies (does it add or upgrade a dependency): no
- The public API, i.e., is any changed class annotated with
@Public(Evolving): no
- The serializers: no
- The runtime per-record code paths (performance sensitive): no
- Anything that affects deployment or recovery: JobManager (and its
components), Checkpointing, Kubernetes/Yarn, ZooKeeper: **yes**
- The S3 file system connector: no
## Documentation
- Does this pull request introduce a new feature? no
---
##### Was generative AI tooling used to co-author this PR?
- [X] Yes (please specify the tool below)
Generated-by: Claude Code Fable 5.1
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]