-
Notifications
You must be signed in to change notification settings - Fork 1
Description
We found an lldpd corefile on dogfood. The corresponding log shows:
thread 'main' panicked at lldpd/src/smf.rs:134:10:
existence guaranteed by presence in this list: Internal
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
06:33:21.804Z ERRO lldpd: failed to fetch tfports info: Other("/usr/sbin/ipadm show-if fa
iled: ")
unit = dpd-link-monitor
This expect suggests that the only error we expected this library call to return was if the requested property group was missing - which we know it can't be. The log message shows that we actually got an internal error from the SMF library.
Looking into the SMF library itself, we can see that the expected return value for a missing property group would be Ok(None), so this expect won't catch the failure it is intended to.
It's not clear why this call failed at all, but we are definitely mishandling the error return. We should log and return the error. Without knowing why the call failed in the first place, it's hard to say exactly what we should do beyond that. The simplest thing would be to simply retry the refresh after the next timeout expires in link_monitor().