[Top][All Lists]
[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
- [Qemu-devel] [PATCH v5 0/4] non-blocking connect address handling cleanup, Orit Wasserman, 2012/09/24
- [Qemu-devel] [PATCH v5 4/4] Clear handler only for valid fd, Orit Wasserman, 2012/09/24
- [Qemu-devel] [PATCH v5 1/4] Refactor inet_connect_opts function, Orit Wasserman, 2012/09/24
- [Qemu-devel] [PATCH v5 3/4] Fix address handling in inet_nonblocking_connect, Orit Wasserman, 2012/09/24
- [Qemu-devel] [PATCH v5 2/4] Separate inet_connect into inet_connect (blocking) and inet_nonblocking_connect, Orit Wasserman, 2012/09/24
- Re: [Qemu-devel] [PATCH v5 0/4] non-blocking connect address handling cleanup, Markus Armbruster, 2012/09/24
- Re: [Qemu-devel] [PATCH v5 0/4] non-blocking connect address handling cleanup, Michael S. Tsirkin, 2012/09/24
- Re: [Qemu-devel] [PATCH v5 0/4] non-blocking connect address handling cleanup, Amos Kong, 2012/09/24
- Re: [Qemu-devel] [PATCH v5 0/4] non-blocking connect address handling cleanup,
Anthony Liguori <=