[PATCH] tools: hv: ignore ENOBUFS in the KVP daemon

Vitaly Kuznetsov vkuznets at redhat.com
Wed Nov 19 14:39:46 UTC 2014


Dexuan Cui <decui at microsoft.com> writes:

>> -----Original Message-----
>> From: Vitaly Kuznetsov 
>> >> --
>> >>   Vitaly
>> >
>> > OK, I can add this new check:
>> > (I'll send out the v2 tomorrow in case  people have new comments)
>> >
>> 
>> Thanks!
>> 
>> > --- a/tools/hv/hv_kvp_daemon.c
>> > +++ b/tools/hv/hv_kvp_daemon.c
>> > @@ -1770,8 +1770,15 @@ kvp_done:
>> >
>> >                 len = netlink_send(fd, incoming_cn_msg);
>> >                 if (len < 0) {
>> > +                       int saved_errno = errno;
>> >                         syslog(LOG_ERR, "net_link send failed; error: %d %s", errno,
>> >                                         strerror(errno));
>> > +
>> > +                       if (saved_errno == ENOMEM || saved_errno ==  EAGAIN) {
>> 
>> Sorry for being pushy, but it seems ENOBUFS is also possible here (at
>> least man sendmsg mentions it).
> OK, I'll add this too. :-)
>
> BTW, I realized sendmsg() can't return EAGAIN here as that's for non-blocking
> socket.
>
> Here I simply ignore the error, hoping the other end will re-try.
>

I agree, it's sufficient to ignore ENOBUFS on recieve path and both
ENOMEM/ENOBUFS on send.

Thanks!

>> 
>> > +                               syslog(LOG_ERR, "send error: ignored");
>> > +                               continue;
>> > +                       }
>> > +
>> >                         exit(EXIT_FAILURE);
>> >                 }
>> >         }
>> >
>> > Thanks,
>> > -- Dexuan
>> 
>>   Vitaly
>
> -- Dexuan

-- 
  Vitaly


More information about the devel mailing list