Comment 0 for bug 1739672

Revision history for this message
Mike Pontillo (mpontillo) wrote : Regression in getaddrinfo(): calls block for much longer on Bionic (compared to Xenial)

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