ArrayIndexOutOfBoundsException thrown by the SNMP Interface Poller
Description
Acceptance / Success Criteria
None
Clones
Lucidchart Diagrams
Activity
Chandra Gorantla December 4, 2020 at 9:33 PM
Updated PR : https://github.com/OpenNMS/opennms/pull/3237
Chandra Gorantla December 4, 2020 at 9:31 PM
Another exception log:
2020-12-02 20:03:13,015 WARN [Timer-5] o.o.n.s.s.Snmp4JStrategy: processResponse: Timeout. Agent: SnmpAgentConfig[Address: xxxx, ProxyForAddress: null, Port: 161, Timeout: 5000, Retries: 2, MaxVarsPerPdu: 10, MaxRepetitions: 2, MaxRequestSize: 65535, Version: v2c, TTL: 600000, ReadCommunity: XXXXXXXX, WriteCommunity: XXXXXXXX], requestID=891968180
2020-12-02 20:03:13,021 ERROR [Snmpinterfacepoller-Thread-117-of-150] o.o.n.s.SnmpPollInterfaceMonitor: Exception while retrieving admin/operational statuses for interfaces in 'xxxx' at location
java.util.concurrent.ExecutionException: java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395) ~[?:?]
at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1999) ~[?:?]
at org.opennms.netmgt.snmpinterfacepoller.SnmpPollInterfaceMonitor.poll(SnmpPollInterfaceMonitor.java:124) [opennms-services-27.0.1.jar:?]
at org.opennms.netmgt.snmpinterfacepoller.pollable.PollableSnmpInterface.doPoll(PollableSnmpInterface.java:317) [opennms-services-27.0.1.jar:?]
at org.opennms.netmgt.snmpinterfacepoller.pollable.PollableSnmpInterface.run(PollableSnmpInterface.java:305) [opennms-services-27.0.1.jar:?]
at org.opennms.netmgt.scheduler.Schedule.run(Schedule.java:142) [org.opennms.core.daemon-27.0.1.jar:?]
at org.opennms.netmgt.scheduler.Schedule$ScheduleEntry.run(Schedule.java:86) [org.opennms.core.daemon-27.0.1.jar:?]
at org.opennms.netmgt.scheduler.LegacyScheduler$1.run(LegacyScheduler.java:179) [org.opennms.core.daemon-27.0.1.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at org.opennms.core.concurrent.LogPreservingThreadFactory$3.run(LogPreservingThreadFactory.java:124) [opennms-util-27.0.1.jar:?]
at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
at org.opennms.netmgt.snmp.proxy.common.SnmpProxyRpcModule.lambda$get$2(SnmpProxyRpcModule.java:180) ~[org.opennms.core.snmp.proxy.rpc-impl-27.0.1.jar:?]
at java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:642) ~[?:?]
at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) ~[?:?]
at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073) ~[?:?]
at org.opennms.netmgt.snmp.snmp4j.Snmp4JStrategy$2.onResponse(Snmp4JStrategy.java:338) ~[org.opennms.core.snmp.implementations.snmp4j-27.0.1.jar:?]
at org.snmp4j.Snmp$PendingRequest.run(Snmp.java:1878) ~[org.opennms.core.snmp.implementations.snmp4j-27.0.1.jar:?]
at java.util.TimerThread.mainLoop(Timer.java:556) ~[?:?]
at java.util.TimerThread.run(Timer.java:506) ~[?:?]
Chandra Gorantla August 4, 2020 at 5:42 PM
Current PR only shows if the exception is due to bad agent. Want to dig deeper and check if we can match responses with request oids and return those matching elements.
Fixed
Details
Assignee
Chandra GorantlaChandra GorantlaReporter
Alejandro GalueAlejandro GalueHB Backlog Status
Backlog CMComponents
Sprint
NoneFix versions
Affects versions
Priority
High
Details
Details
Assignee
Chandra Gorantla
Chandra GorantlaReporter
Alejandro Galue
Alejandro GalueHB Backlog Status
Backlog CM
Components
Sprint
None
Fix versions
Affects versions
Priority
PagerDuty
PagerDuty Incident
PagerDuty
PagerDuty Incident
PagerDuty

PagerDuty Incident
Created December 7, 2020 at 5:09 PM
Updated September 8, 2023 at 11:38 AM
Resolved December 8, 2020 at 2:39 PM
A customer running Horizon 26.1.0 using Minions and Kafka as a broker, is experiencing a massive amount of exceptions in
snmp-poller.log
like the following one:2020-12-02 20:03:13,015 WARN [Timer-5] o.o.n.s.s.Snmp4JStrategy: processResponse: Timeout. Agent: SnmpAgentConfig[Address: xxxx, ProxyForAddress: null, Port: 161, Timeout: 5000, Retries: 2, MaxVarsPerPdu: 10, MaxRepetitions: 2, MaxRequestSize: 65535, Version: v2c, TTL: 600000, ReadCommunity: XXXXXXXX, WriteCommunity: XXXXXXXX], requestID=891968180 2020-12-02 20:03:13,021 ERROR [Snmpinterfacepoller-Thread-117-of-150] o.o.n.s.SnmpPollInterfaceMonitor: Exception while retrieving admin/operational statuses for interfaces in 'xxxx' at location java.util.concurrent.ExecutionException: java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1 at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395) ~[?:?] at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1999) ~[?:?] at org.opennms.netmgt.snmpinterfacepoller.SnmpPollInterfaceMonitor.poll(SnmpPollInterfaceMonitor.java:124) [opennms-services-27.0.1.jar:?] at org.opennms.netmgt.snmpinterfacepoller.pollable.PollableSnmpInterface.doPoll(PollableSnmpInterface.java:317) [opennms-services-27.0.1.jar:?] at org.opennms.netmgt.snmpinterfacepoller.pollable.PollableSnmpInterface.run(PollableSnmpInterface.java:305) [opennms-services-27.0.1.jar:?] at org.opennms.netmgt.scheduler.Schedule.run(Schedule.java:142) [org.opennms.core.daemon-27.0.1.jar:?] at org.opennms.netmgt.scheduler.Schedule$ScheduleEntry.run(Schedule.java:86) [org.opennms.core.daemon-27.0.1.jar:?] at org.opennms.netmgt.scheduler.LegacyScheduler$1.run(LegacyScheduler.java:179) [org.opennms.core.daemon-27.0.1.jar:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?] at org.opennms.core.concurrent.LogPreservingThreadFactory$3.run(LogPreservingThreadFactory.java:124) [opennms-util-27.0.1.jar:?] at java.lang.Thread.run(Thread.java:834) [?:?] Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1 at org.opennms.netmgt.snmp.proxy.common.SnmpProxyRpcModule.lambda$get$2(SnmpProxyRpcModule.java:180) ~[org.opennms.core.snmp.proxy.rpc-impl-27.0.1.jar:?] at java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:642) ~[?:?] at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) ~[?:?] at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073) ~[?:?] at org.opennms.netmgt.snmp.snmp4j.Snmp4JStrategy$2.onResponse(Snmp4JStrategy.java:338) ~[org.opennms.core.snmp.implementations.snmp4j-27.0.1.jar:?] at org.snmp4j.Snmp$PendingRequest.run(Snmp.java:1878) ~[org.opennms.core.snmp.implementations.snmp4j-27.0.1.jar:?] at java.util.TimerThread.mainLoop(Timer.java:556) ~[?:?] at java.util.TimerThread.run(Timer.java:506) ~[?:?]
It is hard to say what could be causing this just by looking at the exception, and also not sure if this could be impacting the SNMP Poller in general or just a few nodes.