ConcurrentModificationException inside ThresholdingSet

Description

Functions inside ThresholdingSet are throwing ConcurrentModificationException because access to the m_thresholdGroups and m_scheduledOutages fields is not protected by any synchronization.

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

Reporter

Labels

Components

Fix versions

Affects versions

Priority

PagerDuty

Created November 27, 2013 at 7:33 PM
Updated January 27, 2017 at 4:21 PM
Resolved November 27, 2013 at 7:36 PM

Flag notifications