The issue is with the systemd resolver not with glibc.

With systemd-resolve IP in /etc/resolv.conf:

# This file is managed by man:systemd-resolved(8). Do not edit.
#
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.
nameserver 127.0.0.53

$ time ./test not-a-hostname
Trying to resolve: not-a-hostname
    getaddrinfo errno: No such file or directory
    getaddrinfo() return value: -2 (Name or service not known)

real    0m10.076s
user    0m0.001s
sys     0m0.000s


Without systemd-resolve in /etc/resolv.conf. I changed it to point to my local 
DNS server directly.

# This file is managed by man:systemd-resolved(8). Do not edit.
#
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.
#nameserver 127.0.0.53
nameserver 192.168.1.1

$ time ./test not-a-hostname
Trying to resolve: not-a-hostname
    getaddrinfo errno: No such file or directory
    getaddrinfo() return value: -2 (Name or service not known)

real    0m0.097s
user    0m0.001s
sys     0m0.000s


** Changed in: glibc (Ubuntu)
       Status: New => Invalid

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, 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:
  New

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

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to