Comment 2 for bug 1794997

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Also the error doesn't indicate that libvirt is doing anything wrong here.
It runs nl_recv [1] in virNetlinkEventCallback which eventually will do recvmsg [2] and gets reported that it didn't fit - so it correctly relay that up the stack.

Now that is a somewhat known issue [3], but it should be fixed in libnl instead of libvirt.
Then around that time one of that kind fixed in libnl [4].
There also was a related issue with some sockets opened with special flags behaving wrong by using other sizes, but that was fixed as well.

All those fixes are known and present in Ubuntu Bionic and later (even quite some earlier).
There are now two possible cases for this IMHO:
1. you found a new reproducible case to trigger this, then we should outline it and forward to the libnl development to fix it - please report if you have a clear case or just found that in the libvirt log a few times.
2. This was just an effect of a low memory or overload (too much messages queue up) situation that can't really be avoided - and in this case it would be fine for libnl to trigger the error and for libvirt to report it in the log to make the admin aware.

For both keeping the bug as "incomplete" for now is correct.

[1]: https://www.infradead.org/~tgr/libnl/doc/api/group__send__recv.html#ga48ab5192dfa62d6b71760d43a4306d13
[2]: http://manpages.ubuntu.com/manpages/xenial/man2/recv.2.html
[3]: https://www.redhat.com/archives/libvir-list/2014-June/msg00834.html
[4]: https://www.redhat.com/archives/libvir-list/2014-June/msg00823.html