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