[Bug 1739672] Re: Regression in getaddrinfo(): calls block for much longer on Bionic (compared to Xenial)
Dimitri John Ledkov
launchpad at surgut.co.uk
Thu Jan 4 17:01:12 UTC 2018
$ time systemd-resolve -p dns not-a-real-hostname
not-a-real-hostname: resolve call failed: No appropriate name servers or networks for name found
real 0m0.003s
user 0m0.000s
sys 0m0.004s
$ time systemd-resolve -p llmnr not-a-real-hostname
not-a-real-hostname: resolve call failed: All attempts to contact name servers or networks failed
real 0m0.850s
user 0m0.000s
sys 0m0.004s
$ time systemd-resolve -p llmnr-ipv4 not-a-real-hostname
not-a-real-hostname: resolve call failed: All attempts to contact name servers or networks failed
real 0m0.820s
user 0m0.000s
sys 0m0.000s
$ time systemd-resolve -p llmnr-ipv6 not-a-real-hostname
not-a-real-hostname: resolve call failed: All attempts to contact name servers or networks failed
real 0m0.750s
user 0m0.000s
sys 0m0.000s
$ time systemd-resolve not-a-real-hostname
not-a-real-hostname: resolve call failed: All attempts to contact name servers or networks failed
real 0m0.712s
user 0m0.004s
sys 0m0.000s
The dns resolution from systemd-resolve is fast; the llmnr one is not.
We currently have llmnr resolution enabled by default. ...it's a
feature?!
What is the usecase of resolving things that do not exist? Surely we
optimise for the fact that most resolutions will succeed, from
performance point of view. The first result retrieved, is returned back.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1739672
Title:
Regression in getaddrinfo(): calls block for much longer on Bionic
(compared to Xenial)
Status in glibc package in Ubuntu:
Invalid
Status in linux package in Ubuntu:
Invalid
Status in systemd package in Ubuntu:
Confirmed
Bug description:
When testing MAAS on Bionic, we noticed sluggish performance that we
could not immediately explain.
After comparing the results from a run of the test suite on Xenial to
a run on Bionic, we determined that the slowdowns had to do with DNS
lookups. In particular, if MAAS attempts to resolve a hostname using
getaddrinfo() and the call fails, on Xenial the negative result is
returned in a fraction of a second. On Bionic, the negative result is
returned in ~1.6 seconds, according to some measures.
### To run the test ###
git clone https://github.com/mpontillo/test-getaddrinfo
cd test-getaddrinfo
make
### Results on Xenial ###
$ time ./test not-a-real-hostname
Trying to resolve: not-a-real-hostname
getaddrinfo errno: Success
getaddrinfo() return value: -2 (Name or service not known)
real 0m0.015s
user 0m0.000s
sys 0m0.000s
### Results on Bionic ###
$ time ./test not-a-real-hostname
Trying to resolve: not-a-real-hostname
getaddrinfo errno: Resource temporarily unavailable
getaddrinfo() return value: -3 (Temporary failure in name resolution)
real 0m1.609s
user 0m0.004s
sys 0m0.000s
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1739672/+subscriptions
More information about the foundations-bugs
mailing list