From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:57622) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TBnkD-00038e-CP for qemu-devel@nongnu.org; Wed, 12 Sep 2012 10:16:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TBnk7-0006iu-Ce for qemu-devel@nongnu.org; Wed, 12 Sep 2012 10:16:45 -0400 Received: from mx1.redhat.com ([209.132.183.28]:53286) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TBnk7-0006ij-45 for qemu-devel@nongnu.org; Wed, 12 Sep 2012 10:16:39 -0400 Message-ID: <5050993E.6010705@redhat.com> Date: Wed, 12 Sep 2012 22:16:30 +0800 From: Amos Kong MIME-Version: 1.0 References: <1347448378-23915-1-git-send-email-owasserm@redhat.com> In-Reply-To: <1347448378-23915-1-git-send-email-owasserm@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 0/3] nonblocking connect address handling cleanup List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Orit Wasserman Cc: kwolf@redhat.com, aliguori@us.ibm.com, mdroth@linux.vnet.ibm.com, quintela@redhat.com, armbru@redhat.com, mst@redhat.com, qemu-devel@nongnu.org, lcapitulino@redhat.com, pbonzini@redhat.com On 12/09/12 19:12, Orit Wasserman wrote: > 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. Looks good to me. Reviewed-by: Amos Kong Tested-by: Amos Kong > Orit Wasserman (3): > Refactor inet_connect_opts function > Separate inet_connect into inet_connect (blocking) and > inet_nonblocking_connect > Fix address handling in inet_nonblocking_connect > > migration-tcp.c | 29 ++----- > nbd.c | 2 +- > qemu-sockets.c | 254 +++++++++++++++++++++++++++++++++++++++++-------------- > qemu_socket.h | 9 ++- > ui/vnc.c | 2 +- > 5 files changed, 208 insertions(+), 88 deletions(-) > -- Amos.