Github user srdo commented on the issue: https://github.com/apache/storm/pull/2800 I don't think fixing the `executorBeats == null` branch is enough. As far as I can tell, two supervisors/workers can be in the https://github.com/apache/storm/blob/4c42ee3d259d5d90a4e7d3445d1c119601eec6c7/storm-client/src/jvm/org/apache/storm/stats/StatsUtil.java#L1576-L1579 branch at the same time for the same topology. We won't get an exception if this happens, but we'll still be modifying a HashMap from two threads at the same time, which isn't safe. Regarding fixing the `executorBeats == null` branch, it isn't enough to switch to an iterator, since iterators have the same behavior as a `forEach` loop (throws exception if underlying collection is concurrently modified).
---