All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Blake <eblake@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: Anthony Liguori <aliguori@us.ibm.com>,
	david.pravec@nethost.cz, Juan Quintela <quintela@redhat.com>,
	mprivozn@redhat.com, Corey Bryant <coreyb@linux.vnet.ibm.com>,
	qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 4/4] chardev: clear O_NONBLOCK on SCM_RIGHTS file descriptors
Date: Tue, 26 Mar 2013 10:40:41 -0600	[thread overview]
Message-ID: <5151CF89.5060706@redhat.com> (raw)
In-Reply-To: <1364314072-2474-5-git-send-email-stefanha@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 1055 bytes --]

On 03/26/2013 10:07 AM, Stefan Hajnoczi wrote:
> When we receive a file descriptor over a UNIX domain socket the
> O_NONBLOCK flag is preserved.  Clear the O_NONBLOCK flag and rely on
> QEMU file descriptor users like migration, SPICE, VNC, block layer, and
> others to set non-blocking only when necessary.
> 
> This change ensures we don't accidentally expose O_NONBLOCK in the QMP
> API.  QMP clients should not need to get the non-blocking state
> "correct".
> 
> A recent real-world example was when libvirt passed a non-blocking TCP
> socket for migration where we expected a blocking socket.  The source
> QEMU produced a corrupted migration stream since its code did not cope
> with non-blocking sockets.
> 
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
>  qemu-char.c | 3 +++
>  1 file changed, 3 insertions(+)

Reviewed-by: Eric Blake <eblake@redhat.com>

Covers both 'getfd' and 'add-fd' paths.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 621 bytes --]

  parent reply	other threads:[~2013-03-26 16:42 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-26 16:07 [Qemu-devel] [PATCH 0/4] monitor: do not rely on O_NONBLOCK for passed file descriptors Stefan Hajnoczi
2013-03-26 16:07 ` [Qemu-devel] [PATCH 1/4] net: ensure "socket" backend uses non-blocking fds Stefan Hajnoczi
2013-03-26 16:25   ` Juan Quintela
2013-03-27  6:36     ` Stefan Hajnoczi
2013-03-26 16:33   ` Eric Blake
2013-03-27  6:37     ` Stefan Hajnoczi
2013-03-26 16:07 ` [Qemu-devel] [PATCH 2/4] qemu-socket: set passed fd non-blocking in socket_connect() Stefan Hajnoczi
2013-03-26 16:33   ` Juan Quintela
2013-03-26 16:34   ` Eric Blake
2013-03-26 16:07 ` [Qemu-devel] [PATCH 3/4] oslib-posix: rename socket_set_nonblock() to qemu_set_nonblock() Stefan Hajnoczi
2013-03-26 16:34   ` Juan Quintela
2013-03-26 16:39   ` Eric Blake
2013-03-26 16:07 ` [Qemu-devel] [PATCH 4/4] chardev: clear O_NONBLOCK on SCM_RIGHTS file descriptors Stefan Hajnoczi
2013-03-26 16:38   ` Juan Quintela
2013-03-26 16:40   ` Eric Blake [this message]
2013-03-27  8:37 ` [Qemu-devel] [PATCH 0/4] monitor: do not rely on O_NONBLOCK for passed " liu ping fan
2013-03-27  8:51   ` Stefan Hajnoczi
2013-03-27 13:06     ` Juan Quintela
2013-03-27 13:39       ` Stefan Hajnoczi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5151CF89.5060706@redhat.com \
    --to=eblake@redhat.com \
    --cc=aliguori@us.ibm.com \
    --cc=coreyb@linux.vnet.ibm.com \
    --cc=david.pravec@nethost.cz \
    --cc=mprivozn@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=stefanha@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.