Page Sequence Monitor fails with Unsupported Operation Exception

Description

If you use the Page Sequence Monitor you will receive the following stack trace:

2013-03-28 18:30:26,757 ERROR [LegacyScheduler-Thread-27-of-200] PollableServiceConfig: Unexpected exception while polling 4:1.1.1.1:HTTP-v4. Marking service as DOWN
java.lang.UnsupportedOperationException
at java.util.Collections$UnmodifiableMap.put(Collections.java:1342)
at org.opennms.core.utils.ParameterMap.getKeyedLong(ParameterMap.java:73)
at org.opennms.core.utils.ParameterMap.getKeyedInteger(ParameterMap.java:94)
at org.opennms.netmgt.poller.monitors.PageSequenceMonitor$PageSequenceMonitorParameters.getIntParm(PageSequenceMonitor.java:641)
at org.opennms.netmgt.poller.monitors.PageSequenceMonitor$PageSequenceMonitorParameters.getRetries(PageSequenceMonitor.java:655)
at org.opennms.netmgt.poller.monitors.PageSequenceMonitor$PageSequenceMonitorParameters.createHttpClient(PageSequenceMonitor.java:669)
at org.opennms.netmgt.poller.monitors.PageSequenceMonitor.poll(PageSequenceMonitor.java:687)
at org.opennms.netmgt.poller.pollables.LatencyStoringServiceMonitorAdaptor.poll(LatencyStoringServiceMonitorAdaptor.java:104)
at org.opennms.netmgt.poller.pollables.PollableServiceConfig.poll(PollableServiceConfig.java:112)
at org.opennms.netmgt.poller.pollables.PollableService.poll(PollableService.java:178)
at org.opennms.netmgt.poller.pollables.PollableElement.poll(PollableElement.java:292)
at org.opennms.netmgt.poller.pollables.PollableContainer$5.run(PollableContainer.java:305)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at org.opennms.netmgt.poller.pollables.PollableElement.withTreeLock(PollableElement.java:263)
at org.opennms.netmgt.poller.pollables.PollableElement.withTreeLock(PollableElement.java:249)
at org.opennms.netmgt.poller.pollables.PollableElement.withTreeLock(PollableElement.java:227)
at org.opennms.netmgt.poller.pollables.PollableContainer.poll(PollableContainer.java:312)
at org.opennms.netmgt.poller.pollables.PollableInterface.poll(PollableInterface.java:205)
at org.opennms.netmgt.poller.pollables.PollableContainer$5.run(PollableContainer.java:305)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at org.opennms.netmgt.poller.pollables.PollableElement.withTreeLock(PollableElement.java:263)
at org.opennms.netmgt.poller.pollables.PollableElement.withTreeLock(PollableElement.java:249)
at org.opennms.netmgt.poller.pollables.PollableElement.withTreeLock(PollableElement.java:227)
at org.opennms.netmgt.poller.pollables.PollableContainer.poll(PollableContainer.java:312)
at org.opennms.netmgt.poller.pollables.PollableNode$3.run(PollableNode.java:303)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at org.opennms.netmgt.poller.pollables.PollableElement.withTreeLock(PollableElement.java:263)
at org.opennms.netmgt.poller.pollables.PollableElement.withTreeLock(PollableElement.java:249)
at org.opennms.netmgt.poller.pollables.PollableElement.withTreeLock(PollableElement.java:227)
at org.opennms.netmgt.poller.pollables.PollableNode.doPoll(PollableNode.java:306)
at org.opennms.netmgt.poller.pollables.PollableElement.doPoll(PollableElement.java:183)
at org.opennms.netmgt.poller.pollables.PollableService.doPoll(PollableService.java:211)
at org.opennms.netmgt.poller.pollables.PollableService$PollRunner.run(PollableService.java:57)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at org.opennms.netmgt.poller.pollables.PollableElement.withTreeLock(PollableElement.java:263)
at org.opennms.netmgt.poller.pollables.PollableElement.withTreeLock(PollableElement.java:249)
at org.opennms.netmgt.poller.pollables.PollableService.doRun(PollableService.java:383)
at org.opennms.netmgt.poller.pollables.PollableService.run(PollableService.java:364)
at org.opennms.netmgt.scheduler.Schedule.run(Schedule.java:135)
at org.opennms.netmgt.scheduler.Schedule$ScheduleEntry.run(Schedule.java:80)
at org.opennms.netmgt.scheduler.LegacyScheduler$1.run(LegacyScheduler.java:203)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.opennms.core.concurrent.LogPreservingThreadFactory$3.run(LogPreservingThreadFactory.java:107)
at java.lang.Thread.run(Thread.java:722)

Environment

last sha1 in git log: 543781611d9cb4a55d390af991fac5a36d28f562 GIT branch origin/1.12 java version "1.7.0_09-icedtea" OpenJDK Runtime Environment (fedora-2.3.8.0.fc17-x86_64) OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode) Verified also with java version "1.6.0_24" Java(TM) SE Runtime Environment (build 1.6.0_24-b07) Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02, mixed mode)

Acceptance / Success Criteria

None

Lucidchart Diagrams

Activity

Benjamin Reed March 29, 2013 at 1:19 PM

Fixed in 1.11.90 and up.

Ronny Trommer March 28, 2013 at 1:43 PM

We figured out the problem occurs if you add the "retry" parameter to the Page Sequence Monitor. Adding the "timeout" parameter doesn't show this kind of problem. So it seems the retry parameter went into a somehow immutable map.

Fixed

Details

Assignee

Reporter

Labels

Fix versions

Affects versions

Priority

PagerDuty

Created March 28, 2013 at 1:36 PM
Updated January 27, 2017 at 4:20 PM
Resolved March 29, 2013 at 1:19 PM

Flag notifications