[libvirt] [PATCH] macvtap: log an error if on failure to connect to netlink socket

Eric Blake eblake at redhat.com
Tue Mar 15 20:45:39 UTC 2011


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 at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 619 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20110315/cc422e42/attachment-0001.sig>


More information about the libvir-list mailing list