Hi All,

Sorry I missed it!!!!
I'll see what I can do to fix it asap.

Thanks for reporting.

Baptiste



On Thu, Jan 26, 2017 at 6:40 PM, Lukas Tribus <lu...@gmx.net> wrote:

> Hello,
>
>
>
> Am 29.11.2016 um 09:53 schrieb Willy Tarreau:
>
>> Hi Joshua,
>>
>> [ccing Baptiste]
>>
>> On Tue, Nov 29, 2016 at 02:17:17AM -0500, Joshua M. Boniface wrote:
>>
>>> Hello list!
>>>
>>> I believe I've found a bug in haproxy related to multiproc and a set of
>>> DNS
>>> resolvers. What happens is, when combining these two features (multiproc
>>> and
>>> dynamic resolvers), I get the following problem: the DNS resolvers, one
>>> per
>>> process it seems, will fail intermittently and independently for no
>>> obvious
>>> reason, and this triggers a DOWN event in the backend; a short time
>>> later,
>>> the resolution succeeds and the backend goes back UP for a short time,
>>> before
>>> repeating indefinitely. This bug also seems to have a curious effect of
>>> causing the active record type to switch from A to AAAA and then back to
>>> A
>>> repeatedly in a dual-stack setup, though the test below shows that this
>>> bug
>>> occurs in an IPv4-only environment as well, and this failure is not
>>> documented in my tests.
>>>
>> (...)
>>
>> I've just taken a quick look at how the socket is created and I understand
>> the issue you're facing. The socket is created before the fork, so all
>> processes share the same socket, and responses can be sent to processes
>> which did not emit the request. We'll have to change this (I don't know
>> how for now) so that each process has its own socket. We do the same for
>> the epoll FD after fork.
>>
>> I think that we should keep this initialization where it is as it is
>> able to spot config issues, and just close these sockets and reopen
>> them after fork, keeping fingers crossed for a new error not happening
>> right after fork(). BTW, by analogy with what is done with peers or
>> even regular servers, we should probably only create the socket when
>> needed and simply report socket creation errors in the logs.
>>
>> Another option would be to create many sockets and later close them but
>> that's ugly and more complicated.
>>
>> In the mean time the best thing to do will be to disable multi-proc with
>> DNS.
>>
>>
>>
>
> FYI, this was just reported on discourse as well:
> http://discourse.haproxy.org/t/dns-resolution-sigh-v1-7-1/960/2
>
>
> cheers,
> lukas
>
>

Reply via email to