Github user zentol commented on a diff in the pull request:
https://github.com/apache/flink/pull/4647#discussion_r137091495
--- Diff:
flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/utils/MutableIOMetrics.java
---
@@ -79,6 +85,7 @@ public void addIOMetrics(AccessExecution attempt,
@Nullable MetricFetcher fetche
this.numBytesOut +=
Long.valueOf(metrics.getMetric(MetricNames.IO_NUM_BYTES_OUT, "0"));
this.numRecordsIn +=
Long.valueOf(metrics.getMetric(MetricNames.IO_NUM_RECORDS_IN, "0"));
this.numRecordsOut +=
Long.valueOf(metrics.getMetric(MetricNames.IO_NUM_RECORDS_OUT, "0"));
+ this.metricsFetched = true;
--- End diff --
luckily this is only the cause because of a bug in this class. Access to
the metric store must be guarded by a synchronization block on the metric
store, which would then guarantee that the update from a taskmanager is applied
in a all-or-nothing fashion.
---