[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