Possible bug in polling?

Hi everyone

I recently had a situation where a device was removed from a colocation before it was removed from LibreNMS. The issue in the front end was that the device just showed up under “unpolled devices”. I have alerts set up for device down due to ICMP check. To my knowledge the polling cycle goes:

  • Ping device with fping to see if it is up. If not, issue an alert that it is down.
  • If device is up, poll device.
  • After polling, action an alert for any alert rules triggered during polling.

But now if I run a ./poller.php -h MYDEVICE -d, I get the following output.

But more importantly, NO ALERTS.

Anyone know why this would happen? Is it possibly a bug that does not trigger alerts if the traceroute process reaches a timeout? I would think that an alert should still be triggered for this device for ICMP down. That way the user would know to remove the device if they know the device was removed from co-location?

Pretty straight forward. The traceroute times out, the default timeout for a command is 60s.

If traceroute is 30 hops limit and 3s timeout, it should probably be 90s or a little more instead of 60s.

Also, why does it go to 30 hops for you? A routing loop?

I understand the error regarding traceroute and the timeout. My question is more why was there never an alert actioned on this device for ICMP down? I mean if it was removed from the colocation, LibreNMS should still have alerted that no ICMP response is received and then thrown an alert?

It looks like that portion of the code is not surrounded by a try/catch block so the Exception is unhandled, causing PHP to exit.

Try lnms device:poll 727 It is a different code path.

@murrant It seems I get the same result: