Subject: | IaResolver breaks over libc upgrades |
Due to the way the IaResolver works, an actual getaddrinfo() call is only ever made in the fork()ed sidecar process. This means every newly-created sidecar has to load the same bits of libc from disk every time. On some systems (e.g. my Debian Linux box) that means the nss-dns module is loaded from disk at the time getaddrinfo() is first called, and no earlier.
This causes a problem if you've, say, done `apt-get upgrade` and updated libc since you started the master process, because now you're in a state where the nss-dns module that libc attempts to load from disk may not match the other bits of libc that are in memory from the fork()ed process.
--
Paul Evans