Comment 8 for bug 1739672

Revision history for this message
Dimitri John Ledkov (xnox) wrote : Re: Regression in getaddrinfo(): calls block for much longer on Bionic (compared to Xenial)

$ 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.