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]

Reply via email to