Discovery fails with JNA pinger

Description

OpenNMS discovery process fails one a range is added to "Home / Admin / Discovery / Modify Configuration"

Environment

FreeBSD 8.2 AMD64 openjdk version "1.6.0" OpenJDK Runtime Environment (build 1.6.0-b22) OpenJDK 64-Bit Server VM (build 19.0-b09, mixed mode) iplike-2.0.2 jicmp-1.2.0-2

Acceptance / Success Criteria

None

Attachments

2

Lucidchart Diagrams

Activity

Show:

Seth Leger September 12, 2011 at 12:12 PM

Ben put in some code that will evaluate whether IPv6 and IPv4 sockets can be created during the initialization of the ICMP libraries so we believe that this problem was fixed in 1.9.90. Please reopen if you can reverify that it occurs in this release. Thanks!

Andy Ellsworth July 7, 2011 at 12:02 PM

#define EAFNOSUPPORT 97 /* Address family not supported by protocol */

Matt Brozowski June 17, 2011 at 8:15 AM

Can you grep /usr/include/sys/errno.h for what error code 97 is?

Andy Ellsworth June 17, 2011 at 12:36 AM

Seeing similar behavior for JNA pinger in 1.9.90 snapshot.

  • CentOS 5.6 system with ipv6 disabled globally

  • Nodes manually provisioned via provisioning groups (no discovery)

  • All ICMP polling fails, pollerd.log shows the following:

2011-06-16 23:05:36,204 DEBUG [PollerScheduler-30 Pool-fiber0] IcmpMonitor: failed to ping /10.1.1.1
java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedConstructorAccessor180.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.opennms.jicmp.jna.NativeDatagramSocket.create(NativeDatagramSocket.java:74)
at org.opennms.netmgt.icmp.jna.V6Pinger.<init>(V6Pinger.java:52)
at org.opennms.netmgt.icmp.jna.JnaIcmpMessenger.<init>(JnaIcmpMessenger.java:53)
at org.opennms.netmgt.icmp.jna.JnaPinger.initialize(JnaPinger.java:65)
at org.opennms.netmgt.icmp.jna.JnaPinger.ping(JnaPinger.java:81)
at org.opennms.netmgt.icmp.jna.JnaPinger.ping(JnaPinger.java:103)
at org.opennms.netmgt.poller.monitors.IcmpMonitor.poll(IcmpMonitor.java:117)
at org.opennms.netmgt.poller.pollables.LatencyStoringServiceMonitorAdaptor.poll(LatencyStoringServiceMonitorAdaptor.java:116)
at org.opennms.netmgt.poller.pollables.PollableServiceConfig.poll(PollableServiceConfig.java:116)
at org.opennms.netmgt.poller.pollables.PollableService.poll(PollableService.java:185)
at org.opennms.netmgt.poller.pollables.PollableElement.poll(PollableElement.java:299)
at org.opennms.netmgt.poller.pollables.PollableContainer$5.run(PollableContainer.java:312)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at org.opennms.netmgt.poller.pollables.PollableElement.withTreeLock(PollableElement.java:270)
at org.opennms.netmgt.poller.pollables.PollableElement.withTreeLock(PollableElement.java:256)
at org.opennms.netmgt.poller.pollables.PollableElement.withTreeLock(PollableElement.java:234)
at org.opennms.netmgt.poller.pollables.PollableContainer.poll(PollableContainer.java:319)
at org.opennms.netmgt.poller.pollables.PollableInterface.poll(PollableInterface.java:212)
at org.opennms.netmgt.poller.pollables.PollableContainer$5.run(PollableContainer.java:312)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at org.opennms.netmgt.poller.pollables.PollableElement.withTreeLock(PollableElement.java:270)
at org.opennms.netmgt.poller.pollables.PollableElement.withTreeLock(PollableElement.java:256)
at org.opennms.netmgt.poller.pollables.PollableElement.withTreeLock(PollableElement.java:234)
at org.opennms.netmgt.poller.pollables.PollableContainer.poll(PollableContainer.java:319)
at org.opennms.netmgt.poller.pollables.PollableNode$3.run(PollableNode.java:302)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at org.opennms.netmgt.poller.pollables.PollableElement.withTreeLock(PollableElement.java:270)
at org.opennms.netmgt.poller.pollables.PollableElement.withTreeLock(PollableElement.java:256)
at org.opennms.netmgt.poller.pollables.PollableElement.withTreeLock(PollableElement.java:234)
at org.opennms.netmgt.poller.pollables.PollableNode.doPoll(PollableNode.java:305)
at org.opennms.netmgt.poller.pollables.PollableElement.doPoll(PollableElement.java:190)
at org.opennms.netmgt.poller.pollables.PollableService.doPoll(PollableService.java:218)
at org.opennms.netmgt.poller.pollables.PollableService$PollRunner.run(PollableService.java:64)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at org.opennms.netmgt.poller.pollables.PollableElement.withTreeLock(PollableElement.java:270)
at org.opennms.netmgt.poller.pollables.PollableElement.withTreeLock(PollableElement.java:256)
at org.opennms.netmgt.poller.pollables.PollableService.doRun(PollableService.java:390)
at org.opennms.netmgt.poller.pollables.PollableService.run(PollableService.java:371)
at org.opennms.netmgt.scheduler.Schedule.run(Schedule.java:138)
at org.opennms.netmgt.scheduler.Schedule$ScheduleEntry.run(Schedule.java:83)
at org.opennms.netmgt.scheduler.LegacyScheduler$1.run(LegacyScheduler.java:295)
at org.opennms.core.concurrent.RunnableConsumerThreadPool$FiberThreadImpl.run(RunnableConsumerThreadPool.java:427)
at java.lang.Thread.run(Thread.java:662)
Caused by: com.sun.jna.LastErrorException: errno was 97
at org.opennms.jicmp.jna.UnixV6NativeSocket.socket(Native Method)
at org.opennms.jicmp.jna.UnixV6NativeSocket.<init>(UnixV6NativeSocket.java:54)
... 46 more

Sevan Janiyan May 12, 2011 at 7:25 PM

As a temp workaround I've switch to using the JniPinger by setting
org.opennms.netmgt.icmp.pingerClass=org.opennms.netmgt.icmp.jni.JniPinger
in etc/opennms.properties

Fixed

Details

Assignee

Reporter

Fix versions

Affects versions

Priority

PagerDuty

Created May 11, 2011 at 11:39 AM
Updated January 21, 2015 at 7:52 PM
Resolved September 12, 2011 at 12:12 PM