2009/1/20 Jesse Keating jkeating@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.dif...) and OpenSUSE (http://download.opensuse.org/distribution/11.0/repo/src-oss/suse/src/glibc-2..., resolv.dynamic.diff) ship a patch to glibc which stats() resolv.conf. We do not.