ConcurrentModificationException inside ThresholdingSet
Description
Acceptance / Success Criteria
None
Lucidchart Diagrams
Activity
Seth Leger November 27, 2013 at 7:36 PM
I've resolved this by adding synchronized() blocks around access to the two fields. Marking as fixed.
commit 8822edeaa140c465cb5c018f37ab7ea59591fbcc
Seth Leger November 27, 2013 at 7:34 PM
Here's the stack trace:
2013-11-22 11:39:59,421 ERROR [OpenNMS.Collectd] Collectd: Failed to reload CollectdConfigFactory because null
java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:859)
at java.util.ArrayList$Itr.next(ArrayList.java:831)
at org.opennms.netmgt.threshd.ThresholdingSet.updateScheduledOutages(ThresholdingSet.java:430)
at org.opennms.netmgt.threshd.ThresholdingVisitor.reloadScheduledOutages(ThresholdingVisitor.java:149)
at org.opennms.netmgt.collectd.CollectableService.refreshPackage(CollectableService.java:208)
at org.opennms.netmgt.collectd.Collectd.refreshServicePackages(Collectd.java:694)
at org.opennms.netmgt.collectd.Collectd.handleScheduledOutagesChanged(Collectd.java:778)
at org.opennms.netmgt.collectd.Collectd.onEventInTransaction(Collectd.java:731)
at org.opennms.netmgt.collectd.Collectd.access$500(Collectd.java:89)
at org.opennms.netmgt.collectd.Collectd$4.doInTransaction(Collectd.java:716)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
at org.opennms.netmgt.collectd.Collectd.onEvent(Collectd.java:713)
at org.opennms.netmgt.eventd.EventIpcManagerDefaultImpl$ListenerThread.run(EventIpcManagerDefaultImpl.java:175)
at java.lang.Thread.run(Thread.java:744)
Fixed
Details
Assignee
Seth LegerSeth LegerReporter
David HustaceDavid HustaceLabels
Components
Fix versions
Affects versions
Priority
Blocker
Details
Details
Assignee
Seth Leger
Seth LegerReporter
David Hustace
David HustaceLabels
Components
Fix versions
Affects versions
Priority
PagerDuty
PagerDuty Incident
PagerDuty
PagerDuty Incident
PagerDuty

PagerDuty Incident
Created November 27, 2013 at 7:33 PM
Updated January 27, 2017 at 4:21 PM
Resolved November 27, 2013 at 7:36 PM
Functions inside ThresholdingSet are throwing ConcurrentModificationException because access to the m_thresholdGroups and m_scheduledOutages fields is not protected by any synchronization.