Orit Wasserman <owass...@redhat.com> writes: > On 09/20/2012 04:19 PM, Markus Armbruster wrote: >> Orit Wasserman <owass...@redhat.com> writes: >> >>> 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. >> >> Almost there for connect. >> >> I'm afraid we have a similar problem with listen: we bind only on the >> first address that works. Shouldn't we bind all of them? >> >> http://www.akkadia.org/drepper/userapi-ipv6.html >> > yes listen should be fixed but lets do it in a separate patch set.
Absolutely.