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.
Orit