
On 03/15/2011 02:32 PM, Laine Stump wrote: In the subject, s/if //
A bug in libnl (see https://bugzilla.redhat.com/show_bug.cgi?id=677724 and https://bugzilla.redhat.com/show_bug.cgi?id=677725) makes it very easy to create a failure to connect to the netlink socket when trying to open a macvtap network device ("type='direct'" in domain interface XML). When that error occurred, there was no log message, leading virsh (for example) to report "unknown error".
This patch logs a message which will hopefully be more useful. (All other error exits from the same function were already logging a message).
Well, not all of them - nl_handle_alloc failure was silent instead of calling virReportOOMError before returning -1. Likewise for the final nl_recv not calling virReportSystemError.
--- src/util/macvtap.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/src/util/macvtap.c b/src/util/macvtap.c index a71db86..66bdc73 100644 --- a/src/util/macvtap.c +++ b/src/util/macvtap.c @@ -127,6 +127,8 @@ int nlComm(struct nl_msg *nl_msg, return -1;
if (nl_connect(nlhandle, NETLINK_ROUTE) < 0) { + virReportSystemError(errno, + "%s", _("cannot connect to netlink socket")); rc = -1; goto err_exit;
What you have is good, but you may want to also scrub those two other failure paths to issue an error and post a v2. -- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org