[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 0/3] nonblocking connect address handling cle
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH v3 0/3] nonblocking connect address handling cleanup |
Date: |
Fri, 21 Sep 2012 10:03:46 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.1 (gnu/linux) |
Orit Wasserman <address@hidden> writes:
> On 09/20/2012 04:19 PM, Markus Armbruster wrote:
>> Orit Wasserman <address@hidden> 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.
- Re: [Qemu-devel] [PATCH v3 3/3] Fix address handling in inet_nonblocking_connect, (continued)