[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: passfd on more platforms
From: |
Eric Blake |
Subject: |
Re: passfd on more platforms |
Date: |
Mon, 14 Mar 2011 08:44:57 -0600 |
User-agent: |
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101209 Fedora/3.1.7-0.35.b3pre.fc14 Lightning/1.0b3pre Mnenhy/0.8.3 Thunderbird/3.1.7 |
On 03/14/2011 08:39 AM, Paolo Bonzini wrote:
> On 03/14/2011 03:02 PM, Bastien ROUCARIES wrote:
>>> >
>>> > recv(socket, buf, 512) => return 17, buf = "getfd\n0x12345678\0"
>>> > parse getfd
>>> > recvfd fails, or even worse it blocks (possibly forever)
>>> > even if recvfd doesn't block, parsing 0x12345678\0 fails
>> Why ? It is like sending and receiving data throught a protocol. i
>> will emulate AF_UNIX by tcp socket over localhost with TCP_NODELAY
>
> No, that's exactly the _wrong_ reason for TCP_NODELAY. You simply
> cannot expect message boundaries to be respected when using SOCK_STREAM.
>
> So, either sendfd/recvfd must be documented to work only on SOCK_DGRAM
> sockets, or they have to be rethought (if possible at all).
Note that just last week libvirt found an issue with SOCK_STREAM hanging
forever on recvfd when the sendfd side was skipped, but SOCK_DGRAM was
able to reliably detect when the sending side of the socket is closed.
I'm perfectly fine with documenting that sendfd/recvfd must be used on
SOCK_DGRAM only.
--
Eric Blake address@hidden +1-801-349-2682
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
Re: passfd on more platforms, Eric Blake, 2011/03/14
Re: passfd on more platforms, Paolo Bonzini, 2011/03/14
- Re: passfd on more platforms, Bastien ROUCARIES, 2011/03/14
- Re: passfd on more platforms, Paolo Bonzini, 2011/03/14
- Re: passfd on more platforms, Bastien ROUCARIES, 2011/03/14
- Re: passfd on more platforms, Paolo Bonzini, 2011/03/14
- Re: passfd on more platforms,
Eric Blake <=
- Re: passfd on more platforms, Bastien ROUCARIES, 2011/03/14
- Re: passfd on more platforms, Paolo Bonzini, 2011/03/14
- Re: passfd on more platforms, Bastien ROUCARIES, 2011/03/14
- Re: passfd on more platforms, Paolo Bonzini, 2011/03/14
- Re: passfd on more platforms, Bastien ROUCARIES, 2011/03/14
- Re: passfd on more platforms, Paolo Bonzini, 2011/03/14
- Re: passfd on more platforms, Bastien ROUCARIES, 2011/03/14
- Re: passfd on more platforms, Paolo Bonzini, 2011/03/14
- Re: passfd on more platforms, Bastien ROUCARIES, 2011/03/14
- Re: passfd on more platforms, Paolo Bonzini, 2011/03/14