qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v5 0/4] non-blocking connect address handling cl


From: Anthony Liguori
Subject: Re: [Qemu-devel] [PATCH v5 0/4] non-blocking connect address handling cleanup
Date: Wed, 26 Sep 2012 07:37:50 -0500
User-agent: Notmuch/0.13.2+93~ged93d79 (http://notmuchmail.org) Emacs/23.3.1 (x86_64-pc-linux-gnu)

Orit Wasserman <address@hidden> writes:

> Changes from v4:
>       - Rename ConnectHandler to NonBlockingConnectHandler
>       - move function comments to functions definitions
>       - move connect_state allocation to outside of the loop
>       - fix comments text
>
> Changes from v3:
>       - add missing parenthesis QEMU_SOCKET_RC_INPROGRESS macro
>       - remove "block" from dummy_opts
>       - remove in_progress from external API (inet_connect_opts and 
>         inet_nonblocking_connect)
>       - Allocate ConnectState inside inet_connect_opts, this make the 
>         structure internal to qemu-sockets.c
>       - fix migrate_fd_cleanup to handle invalid fd.
>       
> Changes from v2:
>       - remove the use of getnameinfo
>       - remove errp for inet_connect_addr
>       - remove QemuOpt "block"
>       - fix errors in wait_for_connect 
>       - pass ConnectState as a parameter to allow concurrent connect ops
>
> getaddrinfo can give us a list of addresses, but we only try to
> connect to the first one. If that fails we never proceed to
> the next one.  This is common on desktop setups that often have ipv6
> configured but not actually working.
> A simple way to reproduce the problem is migration:
> for the destination use -incoming tcp:0:4444, run migrate -d 
> tcp:localhost:4444
> migration will fail on hosts that have both IPv4 and IPV6 address for 
> localhost.
>
> To fix this, refactor address resolution code and make 
> inet_nonblocking_connect
> retry connection with a different address.
>
> Michael S. Tsirkin (1):
>   Refactor inet_connect_opts function
>
> Orit Wasserman (3):
>   Separate inet_connect into inet_connect (blocking) and
>     inet_nonblocking_connect
>   Fix address handling in inet_nonblocking_connect
>   Clear handler only for valid fd
>
>  migration-tcp.c |   37 ++------
>  migration.c     |    4 +-
>  nbd.c           |    2 +-
>  qemu-char.c     |    2 +-
>  qemu-sockets.c  |  279 
> +++++++++++++++++++++++++++++++++++++++++--------------
>  qemu_socket.h   |   15 +++-
>  ui/vnc.c        |    2 +-
>  7 files changed, 237 insertions(+), 104 deletions(-)

Applied. Thanks.

Regards,

Anthony Liguori

>
> -- 
> 1.7.7.6




reply via email to

[Prev in Thread] Current Thread [Next in Thread]