2009/1/20 Jesse Keating <jkeating(a)redhat.com>:
I'm looking at what might be a bug in python. The anaconda
installer
launches python, then we get network configs going and write out some
files such as /etc/resolv.conf. However that original python process
can't seem to resolve anything after this file has been written out,
whereas new python processes started on a different terminal can indeed
use the new /etc/resolv.conf data.
My thought is that the original python process is using stale
information, and that something like a res_init() is needed, but google
doesn't seem to have any real connection between python and calling
res_init. The guys in #python on freenode aren't exactly sure what to
do here either.
Nothing specific to Python here as far as I know; glibc just caches
its first read of /etc/resolv.conf. Everything is affected. The only
program that mostly works is Firefox because they go out of their way
to unbreak things (i.e. call res_init when they get notification from
NetworkManager).
The previous thread was here:
http://www.mailinglistarchive.com/fedora-devel-list@redhat.com/msg39340.html
I think we were stuck on the choice between nscd, bind, and some other
caching package.
Both Debian/Ubuntu
(
http://patches.ubuntu.com/g/glibc/extracted/any/local-dynamic-resolvconf....)
and OpenSUSE
(
http://download.opensuse.org/distribution/11.0/repo/src-oss/suse/src/glib...,
resolv.dynamic.diff) ship a patch to glibc which stats() resolv.conf.
We do not.