On Wed, Oct 30, 2019, 9:58 AM Baptiste <bed...@gmail.com> wrote:

>
>
> On Tue, Oct 29, 2019 at 8:18 PM David Birdsong <david.birds...@gmail.com>
> wrote:
>
>> I should have put the haproxy version in the mail too:
>>
>> haproxy 2.0.8
>>
>> On Tue, Oct 29, 2019 at 3:07 PM David Birdsong <david.birds...@gmail.com>
>> wrote:
>>
>>> I've narrowed down a behavior that I think might be a bug, but is
>>> definitely not ideal.
>>>
>>> This minimal configuration copies header: X-Host into Host and performs
>>> a dynamic DNS query against that field name, stores the output in a txn
>>> var, and then uses a backend whic sets the dest ip to that txn var.
>>>
>>> For any requests with an X-Host header that matches a name already
>>> tracked by DNS in a backend, I see that haproxy spends 4-9 seconds reading
>>> the request from the client while any X-Host values which are not currently
>>> tracked by a backend show haproxy spending 1ms reading in the request from
>>> the client (normal.)
>>>
>>> unnamed, fast: curl -v -H "X-Host: google.com" http://127.0.0.1:8080/foo
>>>
>>> named, very slow:  curl -v -H "X-Host: mixpanel.com"
>>> http://127.0.0.1:8080/foo
>>>
>>> Config:
>>> https://gist.github.com/davidbirdsong/1c3ec695fdbab10f64783437ffab901c
>>> haproxy -vv
>>> https://gist.github.com/davidbirdsong/d4c1c71e715d8461ad73a4891caca6f1
>>>
>>> cat /etc/lsb-release
>>> DISTRIB_ID=Ubuntu
>>> DISTRIB_RELEASE=16.04
>>> DISTRIB_CODENAME=xenial
>>> DISTRIB_DESCRIPTION="Ubuntu 16.04.6 LTS"
>>>
>>>
>>> david@david-VirtualBox:~/tls_demo/CA$ uname -a
>>> Linux david-VirtualBox 4.15.0-65-generic #74~16.04.1-Ubuntu SMP Wed Sep
>>> 18 09:51:44 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
>>>
>>>
> Hi David,
>
> I confirm I can reproduce the issue and from my first quick look, it is
> related to DNS code in HAProxy.
> Basically, there is a cache of the valid responses and from what I
> observed, your do-resolve session is registered to the resolution and
> instead of pulling info from the cache, it's waiting until the next request
> is sent and gets updated with the next response.
>

Thanks!

It had that feel to it...seemed like a cache lock timeout and/or somehow
tied to the request interval.


> Let me fix this.
>
> Baptiste
>

Reply via email to