On Wed, Sep 12, 2012 at 02:12:55PM +0300, 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.
Nice improvement over my patch. thanks For the series: Acked-by: Michael S. Tsirkin <m...@redhat.com> Anthony, we got reports offlist from people with such setups - migration under 1.2 regressed for them. So I think we need this on 1.2.X as well if this ever happens. > 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(-) > > -- > 1.7.7.6