[ 
https://issues.apache.org/jira/browse/FLINK-39394?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Piotr Nowojski updated FLINK-39394:
-----------------------------------
    Fix Version/s: 2.0.2

> Job overview metrics (business/backpressure/data skew) are showing N/A when 
> some nodes are finished
> ---------------------------------------------------------------------------------------------------
>
>                 Key: FLINK-39394
>                 URL: https://issues.apache.org/jira/browse/FLINK-39394
>             Project: Flink
>          Issue Type: Bug
>          Components: Runtime / Web Frontend
>    Affects Versions: 2.0.1, 1.20.3, 2.2.0, 2.1.1
>            Reporter: Aleksandr Iushmanov
>            Assignee: Aleksandr Iushmanov
>            Priority: Minor
>              Labels: pull-request-available
>             Fix For: 1.20.4, 2.1.2, 2.0.2, 2.3.0, 2.2.1
>
>
> When a streaming job has a mix of RUNNING and FINISHED vertices (e.g., a 
> STATEMENT SET with bounded and unbounded sources), the job overview page in 
> the Flink Web UI shows "N/A" for backpressure, busyness, and
>   data skew metrics on all vertices — including the ones that are still 
> running.
>   Root cause:
>   In job-overview.component.ts, mergeWithBackPressureAndSkew() uses forkJoin 
> to load subtask metrics for every vertex. For a FINISHED vertex, the REST 
> endpoint /jobs/\{jid}/vertices/\{vid}/subtasks/metrics returns an
>    empty array. loadMetricsWithAllAggregates() maps this to an empty object 
> {}, and the code then accesses result.backPressuredTimeMsPerSecond.max — 
> which throws a TypeError because the key is undefined. Since
>   forkJoin fails atomically, the outer catchError discards metrics for all 
> vertices, not just the finished one. The same pattern exists in 
> mergeWithWatermarks().
>   Fix:
>   1. Guard against missing metric keys before accessing .max / .skew
>   2. Add per-node catchError inside the forkJoin so a single vertex failure 
> does not affect other vertices
>   How to reproduce:
>   Run a streaming job where one vertex is bounded (e.g., EXECUTE STATEMENT 
> SET with one INSERT from VALUES and one from an unbounded source). The 
> bounded source vertex and its downstream sink chain will transition
>   to FINISHED. Open the job overview — all vertices will show "N/A" for 
> backpressure, busyness, and data skew.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to