[ https://issues.apache.org/jira/browse/STORM-3944?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Julien Nioche resolved STORM-3944. ---------------------------------- Resolution: Fixed > ConcurrentModificationException in MultiCountMetric > ---------------------------------------------------- > > Key: STORM-3944 > URL: https://issues.apache.org/jira/browse/STORM-3944 > Project: Apache Storm > Issue Type: Bug > Affects Versions: 2.5.0 > Reporter: Julien Nioche > Priority: Major > Fix For: 2.6 > > Time Spent: 0.5h > Remaining Estimate: 0h > > Came across the following exception > {code:java} > 022-07-15 09:57:16.851 o.a.s.e.e.ReportError Thread-43-fetcher-executor[15, > 15] [ERROR] Error > java.lang.RuntimeException: java.lang.RuntimeException: > java.util.ConcurrentModificationException > at org.apache.storm.utils.Utils$1.run(Utils.java:411) > ~[storm-client-2.4.0.jar:2.4.0] > at java.lang.Thread.run(Thread.java:829) [?:?] > Caused by: java.lang.RuntimeException: > java.util.ConcurrentModificationException > at org.apache.storm.executor.Executor.accept(Executor.java:301) > ~[storm-client-2.4.0.jar:2.4.0] > at org.apache.storm.utils.JCQueue.consumeImpl(JCQueue.java:113) > ~[storm-client-2.4.0.jar:2.4.0] > at org.apache.storm.utils.JCQueue.consume(JCQueue.java:89) > ~[storm-client-2.4.0.jar:2.4.0] > at > org.apache.storm.executor.bolt.BoltExecutor$1.call(BoltExecutor.java:154) > ~[storm-client-2.4.0.jar:2.4.0] > at > org.apache.storm.executor.bolt.BoltExecutor$1.call(BoltExecutor.java:140) > ~[storm-client-2.4.0.jar:2.4.0] > at org.apache.storm.utils.Utils$1.run(Utils.java:396) > ~[storm-client-2.4.0.jar:2.4.0] > ... 1 more > Caused by: java.util.ConcurrentModificationException > at java.util.HashMap$HashIterator.nextNode(HashMap.java:1511) ~[?:?] > at java.util.HashMap$EntryIterator.next(HashMap.java:1544) ~[?:?] > at java.util.HashMap$EntryIterator.next(HashMap.java:1542) ~[?:?] > at > org.apache.storm.metric.api.MultiCountMetric.getValueAndReset(MultiCountMetric.java:35) > ~[storm-client-2.4.0.jar:2.4.0] > at > org.apache.storm.metric.api.MultiCountMetric.getValueAndReset(MultiCountMetric.java:18) > ~[storm-client-2.4.0.jar:2.4.0] > at org.apache.storm.executor.Executor.metricsTick(Executor.java:339) > ~[storm-client-2.4.0.jar:2.4.0] > at > org.apache.storm.executor.bolt.BoltExecutor.tupleActionFn(BoltExecutor.java:200) > ~[storm-client-2.4.0.jar:2.4.0] > at org.apache.storm.executor.Executor.accept(Executor.java:297) > ~[storm-client-2.4.0.jar:2.4.0] > at org.apache.storm.utils.JCQueue.consumeImpl(JCQueue.java:113) > ~[storm-client-2.4.0.jar:2.4.0] > at org.apache.storm.utils.JCQueue.consume(JCQueue.java:89) > ~[storm-client-2.4.0.jar:2.4.0] > at > org.apache.storm.executor.bolt.BoltExecutor$1.call(BoltExecutor.java:154) > ~[storm-client-2.4.0.jar:2.4.0] > at > org.apache.storm.executor.bolt.BoltExecutor$1.call(BoltExecutor.java:140) > ~[storm-client-2.4.0.jar:2.4.0] > at org.apache.storm.utils.Utils$1.run(Utils.java:396) > ~[storm-client-2.4.0.jar:2.4.0] > ... 1 more > {code} > Seems to be a straightforward case of one thread modifying the > MultiCountMetric while another one is calling getValueAndReset. -- This message was sent by Atlassian Jira (v8.20.10#820010)