Han You created FLINK-40602:
-------------------------------
Summary: JobManager silently omits running jobs whose JobMaster
fails or times out on GET /jobs/overview
Key: FLINK-40602
URL: https://issues.apache.org/jira/browse/FLINK-40602
Project: Flink
Issue Type: Bug
Components: Runtime / Coordination
Affects Versions: 2.1.3, 2.2.1, 2.3.0
Reporter: Han You
JobManager's GET /jobs/overview endpoint fans out a query to every registered
JobManagerRunner and collects the results with
{code:java}
queryFunction.apply(job).handle((T value, Throwable t) ->
Optional.ofNullable(value));{code}
[https://github.com/apache/flink/blob/master/flink-runtime/src/main/java/org/apache/flink/runtime/dispatcher/Dispatcher.java#L2498-L2500]
As a result, any throwable is discarded, and the job is simply omitted from the
GET /jobs/overview endpoint. The endpoint still returns a 200 regardless.There
is no log line and nothing in the response indicating the list is partial.
Any client that uses /jobs/overview to check whether a job still exists -- most
notably the Flink Kubernetes Operator which was the reason I started to
investigate -- would wrongfully conclude that the job is gone. In the operator,
this causes wrong internal state and resubmission of duplicated jobs.
I will attach reproduction unit test in the Github PR.
The expected behavior is to fail when ANY JobMaster query fails.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)