Python and /etc/resolv.conf changes
Dan Williams
dcbw at redhat.com
Thu Jan 22 16:00:14 UTC 2009
On Wed, 2009-01-21 at 09:26 -0500, Colin Walters wrote:
> On Tue, Jan 20, 2009 at 8:19 PM, Colin Walters <walters at verbum.org> wrote:
> >
> > Both Debian/Ubuntu
> > (http://patches.ubuntu.com/g/glibc/extracted/any/local-dynamic-resolvconf.diff)
> > and OpenSUSE (http://download.opensuse.org/distribution/11.0/repo/src-oss/suse/src/glibc-2.8-14.1.src.rpm,
> > resolv.dynamic.diff) ship a patch to glibc which stats() resolv.conf.
> > We do not.
>
> Thinking about this a bit more this morning on the shuttle, there's a
> strong argument that this is a glibc bug, and that the stat() approach
> is a correct fix, if not necessarily the most ideal one. That
> argument is simply that glibc is caching data without a mechanism for
> invalidation; and a cache without invalidation is always a bug.
This was discussed with the glibc maintainers a long time ago, and was
rejected for various reasons (see below). Their answer at the time was
to use "lwresd", a lightweight caching nameserver, or nscd to provide
this functionality. This was back in 2004, so perhaps things have
changed, and maybe it's time to strike up the conversation again.
However, I suspect the answer is still "use nscd".
Dan
--------------------------------------
On Fri, 2004-06-04 at 07:48 -0700, Ulrich Drepper wrote:
> Dan Williams wrote:
>
> > 1) make glibc stat() /etc/resolv.conf on every call that does name
> > lookups
> > 2) make glibc re-read /etc/resolv.conf every time something does a name
> > lookup
> > 3) use nscd instead, and modify ncsd to do either (1) or (2)?
>
> None of this is an option. There is no way we are going to make
> everybody pay the price for the needs of a few people who wants
> everything to happen automatically.
>
> The solution is to use nscd and have some external code explicitly flush
> the cache with
>
> service nscd reload
>
> This is already possible for, I guess, 5-6 years.
More information about the fedora-devel-list
mailing list