--- Begin Message ---
Package: nscd
Version: 2.7-10
I think I have found a couple closely related long-standing bugs related
to flushing the caches in the init script for nscd:
1. Can't flush the cache when nscd isn't running
Using /etc/init.d/nscd reload|restart is supposed to invalidate, or
flush, the caches for the passwd, group and hosts databases. However
the way the init script works is that it first stops nscd, then tries to
flush the caches, and then it restarts nscd. However, the --invalidate
flag seems to require that nscd be running and it silently fails to do
anything when nscd isn't running! (the silent part seems like an nscd bug to me!)
2. nscd ignores more than one --invalidate option
The init script currently tries to flush the caches for the passwd,
group, and hosts tables all with one command. However nscd seems to
silently ignore more than one instance of the --invalidate flag, so only
the passwd table would be flushed using the current init script, *if*
nscd was even running (see bug #1 above).
I would be glad to provide a transcript of 'nscd -g' invocations to show
what I'm seeing if that would be helpful.
The fix
-------
1. Run the --invalidate commands before stopping nscd or after
restarting it.
2. Run a separate --invalidate command for each table.
3. [Optional] convince upstream glibc developers to make nscd complain
loudly when more than one --invalidate flag is passed, and when
--invalidate is attempted when nscd isn't even up and running just like 'nscd
-g' fails loudly when nscd isn't running.
Here is a patch against /etc/init.d/nscd from the latest experimental
nscd v2.9-0exp2 which fixes the problems for me:
--- nscd 2009-01-20 10:17:49.000000000 -0500
+++ nscd.fixed 2009-02-19 15:32:04.602864750 -0500
@@ -93,8 +93,10 @@
;;
restart|force-reload|reload)
log_daemon_msg "Restarting $DESC" "$NAME"
+ for table in passwd group hosts; do
+ $DAEMON --invalidate $table
+ done
stop_nscd
- $DAEMON --invalidate passwd --invalidate group --invalidate hosts
case "$?" in
0|1)
start_nscd
FYI, I first noticed the behavior on an Ubuntu Server 8.04 system with nscd
version 2.7-10ubuntu4, then I was able to reproduce it on an old Debian
server we have that has nscd version 2.3.6-15. It seems hard to believe that
these bugs have been there for 2.5 years in Debian and Ubuntu! :)
Thanks in advance for your help getting this straightened out for me and
everyone else!
Jason
--- End Message ---
--- Begin Message ---
Source: glibc
Source-Version: 2.9-2
We believe that the bug you reported is fixed in the latest version of
glibc, which is due to be installed in the Debian FTP archive:
glibc-doc_2.9-2_all.deb
to pool/main/g/glibc/glibc-doc_2.9-2_all.deb
glibc-source_2.9-2_all.deb
to pool/main/g/glibc/glibc-source_2.9-2_all.deb
glibc_2.9-2.diff.gz
to pool/main/g/glibc/glibc_2.9-2.diff.gz
glibc_2.9-2.dsc
to pool/main/g/glibc/glibc_2.9-2.dsc
libc6-dbg_2.9-2_amd64.deb
to pool/main/g/glibc/libc6-dbg_2.9-2_amd64.deb
libc6-dev-i386_2.9-2_amd64.deb
to pool/main/g/glibc/libc6-dev-i386_2.9-2_amd64.deb
libc6-dev_2.9-2_amd64.deb
to pool/main/g/glibc/libc6-dev_2.9-2_amd64.deb
libc6-i386_2.9-2_amd64.deb
to pool/main/g/glibc/libc6-i386_2.9-2_amd64.deb
libc6-pic_2.9-2_amd64.deb
to pool/main/g/glibc/libc6-pic_2.9-2_amd64.deb
libc6-prof_2.9-2_amd64.deb
to pool/main/g/glibc/libc6-prof_2.9-2_amd64.deb
libc6-udeb_2.9-2_amd64.udeb
to pool/main/g/glibc/libc6-udeb_2.9-2_amd64.udeb
libc6_2.9-2_amd64.deb
to pool/main/g/glibc/libc6_2.9-2_amd64.deb
libnss-dns-udeb_2.9-2_amd64.udeb
to pool/main/g/glibc/libnss-dns-udeb_2.9-2_amd64.udeb
libnss-files-udeb_2.9-2_amd64.udeb
to pool/main/g/glibc/libnss-files-udeb_2.9-2_amd64.udeb
locales-all_2.9-2_amd64.deb
to pool/main/g/glibc/locales-all_2.9-2_amd64.deb
locales_2.9-2_all.deb
to pool/main/g/glibc/locales_2.9-2_all.deb
nscd_2.9-2_amd64.deb
to pool/main/g/glibc/nscd_2.9-2_amd64.deb
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to 516212@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Aurelien Jarno <aurel32@debian.org> (supplier of updated glibc package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@debian.org)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Format: 1.8
Date: Fri, 20 Feb 2009 22:25:19 +0100
Source: glibc
Binary: glibc-doc glibc-source locales locales-all nscd libc6 libc6-dev libc6-dbg libc6-prof libc6-pic libc6-udeb libc6.1 libc6.1-dev libc6.1-dbg libc6.1-prof libc6.1-pic libc6.1-udeb libc0.3 libc0.3-dev libc0.3-dbg libc0.3-prof libc0.3-pic libc0.3-udeb libc0.1 libc0.1-dev libc0.1-dbg libc0.1-prof libc0.1-pic libc0.1-udeb libc6-i386 libc6-dev-i386 libc6-sparc64 libc6-dev-sparc64 libc6-s390x libc6-dev-s390x libc6-amd64 libc6-dev-amd64 libc6-powerpc libc6-dev-powerpc libc6-ppc64 libc6-dev-ppc64 libc6-mipsn32 libc6-dev-mipsn32 libc6-mips64 libc6-dev-mips64 libc0.1-i386 libc0.1-dev-i386 libc6-sparcv9b libc6-i686 libc6-xen libc0.1-i686 libc6.1-alphaev67 libnss-dns-udeb libnss-files-udeb
Architecture: source all amd64
Version: 2.9-2
Distribution: unstable
Urgency: low
Maintainer: Aurelien Jarno <aurel32@debian.org>
Changed-By: Aurelien Jarno <aurel32@debian.org>
Description:
glibc-doc - GNU C Library: Documentation
glibc-source - GNU C Library: sources
libc0.1 - GNU C Library: Shared libraries
libc0.1-dbg - GNU C Library: Libraries with debugging symbols
libc0.1-dev - GNU C Library: Development Libraries and Header Files
libc0.1-dev-i386 - GNU C Library: 32bit development libraries for AMD64
libc0.1-i386 - GNU C Library: 32bit shared libraries for AMD64
libc0.1-i686 - GNU C Library: Shared libraries [i686 optimized]
libc0.1-pic - GNU C Library: PIC archive library
libc0.1-prof - GNU C Library: Profiling Libraries
libc0.1-udeb - GNU C Library: Shared libraries - udeb (udeb)
libc0.3 - GNU C Library: Shared libraries
libc0.3-dbg - GNU C Library: Libraries with debugging symbols
libc0.3-dev - GNU C Library: Development Libraries and Header Files
libc0.3-pic - GNU C Library: PIC archive library
libc0.3-prof - GNU C Library: Profiling Libraries
libc0.3-udeb - GNU C Library: Shared libraries - udeb (udeb)
libc6 - GNU C Library: Shared libraries
libc6-amd64 - GNU C Library: 64bit Shared libraries for AMD64
libc6-dbg - GNU C Library: Libraries with debugging symbols
libc6-dev - GNU C Library: Development Libraries and Header Files
libc6-dev-amd64 - GNU C Library: 64bit Development Libraries for AMD64
libc6-dev-i386 - GNU C Library: 32bit development libraries for AMD64
libc6-dev-mips64 - GNU C Library: 64bit Development Libraries for MIPS64
libc6-dev-mipsn32 - GNU C Library: n32 Development Libraries for MIPS64
libc6-dev-powerpc - GNU C Library: 32bit powerpc development libraries for ppc64
libc6-dev-ppc64 - GNU C Library: 64bit Development Libraries for PowerPC64
libc6-dev-s390x - GNU C Library: 64bit Development Libraries for IBM zSeries
libc6-dev-sparc64 - GNU C Library: 64bit Development Libraries for UltraSPARC
libc6-i386 - GNU C Library: 32bit shared libraries for AMD64
libc6-i686 - GNU C Library: Shared libraries [i686 optimized]
libc6-mips64 - GNU C Library: 64bit Shared libraries for MIPS64
libc6-mipsn32 - GNU C Library: n32 Shared libraries for MIPS64
libc6-pic - GNU C Library: PIC archive library
libc6-powerpc - GNU C Library: 32bit powerpc shared libraries for ppc64
libc6-ppc64 - GNU C Library: 64bit Shared libraries for PowerPC64
libc6-prof - GNU C Library: Profiling Libraries
libc6-s390x - GNU C Library: 64bit Shared libraries for IBM zSeries
libc6-sparc64 - GNU C Library: 64bit Shared libraries for UltraSPARC
libc6-sparcv9b - GNU C Library: Shared libraries [v9b optimized]
libc6-udeb - GNU C Library: Shared libraries - udeb (udeb)
libc6-xen - GNU C Library: Shared libraries [Xen version]
libc6.1 - GNU C Library: Shared libraries
libc6.1-alphaev67 - GNU C Library: Shared libraries (EV67 optimized)
libc6.1-dbg - GNU C Library: Libraries with debugging symbols
libc6.1-dev - GNU C Library: Development Libraries and Header Files
libc6.1-pic - GNU C Library: PIC archive library
libc6.1-prof - GNU C Library: Profiling Libraries
libc6.1-udeb - GNU C Library: Shared libraries - udeb (udeb)
libnss-dns-udeb - GNU C Library: NSS helper for DNS - udeb (udeb)
libnss-files-udeb - GNU C Library: NSS helper for files - udeb (udeb)
locales - GNU C Library: National Language (locale) data [support]
locales-all - GNU C Library: Precompiled locale data
nscd - GNU C Library: Name Service Cache Daemon
Closes: 516212
Changes:
glibc (2.9-2) unstable; urgency=low
.
[ Aurelien Jarno ]
* testsuite-checking/*: ignore tst-cpuclock2 test, as it fails on
machines using cpufreq.
* Rename submitted/cvs-tsd.diff into hppa/cvs-tsd.diff.
* patches/any/local-bashisms.diff: fix more bashisms in the testsuite.
* rules.d/build.mk: define SHELL as /bin/bash.
* patches/any/cvs-pthread_h.diff: patch from upstream to fix warning
in pthread.h.
* debhelper.in/libc.preinst: restart NSS services on upgrades from
versions prior to 2.9-1.
* debhelper.in/*symbols*, rules.d/debhelper.mk: allow linking against
private symbols again, but with a strict dependency on the upstream
version.
* debhelper.in/nscd.init: fix cache flushing on restart/reload. Closes:
bug#516212.
.
[ Petr Salinger ]
* kfreebsd/local-sysdeps.diff: update to revision 2370 (from glibc-bsd).
* drop kfreebsd/local-sysdeps28.diff (merged into local-sysdeps.diff).
Checksums-Sha1:
3a84b71b0a12b3dcaddddf84000edb4a8e3afa2a 2650 glibc_2.9-2.dsc
17cebd8de40e83f6559b1da4b4a4846f34761233 685010 glibc_2.9-2.diff.gz
bc85f19ed45161d3993c7453b49bc559d325a36f 1651238 glibc-doc_2.9-2_all.deb
020483c1f9b76e117faf290165cdeca0161b226a 16107044 glibc-source_2.9-2_all.deb
16d13a5661c6401bc2beffea2c772bc0c748e436 4660502 locales_2.9-2_all.deb
f025334aecfb7d243c4597ef2a8be9da8283c67c 4934314 libc6_2.9-2_amd64.deb
41c8548baa3e1c2eac3f2a30dd56f6e3e2bd031c 2520242 libc6-dev_2.9-2_amd64.deb
895e60d07109bf78ab78b17ab4c85441bf787089 1946788 libc6-prof_2.9-2_amd64.deb
ae5ace3b67cdca21a25427bad290a1b79e236037 1482358 libc6-pic_2.9-2_amd64.deb
43ad3e9681b678a3df48667acb88931c5e89ce8d 2941080 locales-all_2.9-2_amd64.deb
a503140774dd56ad08e3fc117aca3122d483313e 3748334 libc6-i386_2.9-2_amd64.deb
1719d14f8149048e0dd0a08bcc385ffc284cde3c 1500610 libc6-dev-i386_2.9-2_amd64.deb
fcd9da820799f5a4d3ecfe38ac92feb9b4de80b4 183518 nscd_2.9-2_amd64.deb
859278e317a54b4912c7086558436875249fd423 15255810 libc6-dbg_2.9-2_amd64.deb
30403100c4a243370bd01de37ec75ca31c9b5395 1116216 libc6-udeb_2.9-2_amd64.udeb
138e9b06e12bbc3b106a2f648257b0935a595e78 10834 libnss-dns-udeb_2.9-2_amd64.udeb
f606ef1a880a0fd1e47a9180bd5946da5c3094f9 19058 libnss-files-udeb_2.9-2_amd64.udeb
Checksums-Sha256:
c85d8ea422c6fd87dcd0b184abf21786db2fb3398ce0d09c484430c16d63b80a 2650 glibc_2.9-2.dsc
0ae6748bac143af142aeebc64240ef2bbba1d9f25d3496b1f84d5233a06d3f49 685010 glibc_2.9-2.diff.gz
638452397c3aeb642fc6c28c8f6f4ae99cbe1c0f1acaf7342e4ee5b0fb5c9202 1651238 glibc-doc_2.9-2_all.deb
45da410cc4e1554b4362afa4c7fd9acc74614194d538cad1f8dcfae969d04e6e 16107044 glibc-source_2.9-2_all.deb
47752c534607bee145f38e9269916aa2a4be0f645fac784fb45e95b45390bf19 4660502 locales_2.9-2_all.deb
ad2b486205729650999ab177678d0b6a6cffd43ae7f2fff51d8e0f5e36ad64f6 4934314 libc6_2.9-2_amd64.deb
6492b7adcd8cd61362017e51d8ca5b012eb689aa553889b65cfe4a0736d56f37 2520242 libc6-dev_2.9-2_amd64.deb
892602a979d2f33a88c211c437ed4f81c535b7df01085921601c8bb48a91816b 1946788 libc6-prof_2.9-2_amd64.deb
b2ca8ef2245dc65d19efafc423db414fd3d010b0eea434cd9538520db57a05bc 1482358 libc6-pic_2.9-2_amd64.deb
f3f42721872bb4d4f5747ca204a0c9f36f3d652145a6c8547a83750be9f1b457 2941080 locales-all_2.9-2_amd64.deb
a14bdfc3020e3b5f81a68b35093f1dd5b9f906eb653f044ea0fa64f96f9f16bd 3748334 libc6-i386_2.9-2_amd64.deb
f73c6152b3feeede03e8661cac2dad9826f1bc8f28b05458891fba897f683de8 1500610 libc6-dev-i386_2.9-2_amd64.deb
801b5d5bea37c4da71c3ec79a6140c8f5eab95f95736798c87c08fabea47f64d 183518 nscd_2.9-2_amd64.deb
c3118d3473f8e4ed19dc5c99b6507bbc0458f6772a0bbe32600e6c0422bbe018 15255810 libc6-dbg_2.9-2_amd64.deb
93359050d2acdaf7bd11f6cf735c27c712f7a764ca5e3458b2f34c52eb9144d0 1116216 libc6-udeb_2.9-2_amd64.udeb
2f9abd19b1c13f8d8b0882550e075d2140a7407e25e1abbbf05af0852556b91d 10834 libnss-dns-udeb_2.9-2_amd64.udeb
a75e3a8bd0d5c516e4e2dd7af70b8cd359bd49a8bb0f15811db86c8c87d2f8d1 19058 libnss-files-udeb_2.9-2_amd64.udeb
Files:
745490de369349214327b01d86f220a4 2650 libs required glibc_2.9-2.dsc
2eae412167c2991a8e636773d02eb5f2 685010 libs required glibc_2.9-2.diff.gz
af2caefa86eb462459b816ce1f2adcd0 1651238 doc optional glibc-doc_2.9-2_all.deb
781c863d174c635ed11b03342e6b5850 16107044 devel optional glibc-source_2.9-2_all.deb
1133cc06199f23aa4777e3cf030dc643 4660502 libs standard locales_2.9-2_all.deb
1b09ebf398641fe78fb4f9f84a77641a 4934314 libs required libc6_2.9-2_amd64.deb
5511b61e7fc51b80934afea84107ddd3 2520242 libdevel optional libc6-dev_2.9-2_amd64.deb
ad579d7e932a52fd5196588b564edf5a 1946788 libdevel extra libc6-prof_2.9-2_amd64.deb
5594f074ea503929c438f21cee5d0eb2 1482358 libdevel optional libc6-pic_2.9-2_amd64.deb
6a5d24deda9c88b2c3182485eba8c246 2941080 libs extra locales-all_2.9-2_amd64.deb
b2dc7bb5d56c90c2b0be91b156bef5f7 3748334 libs optional libc6-i386_2.9-2_amd64.deb
d3100bbba5c4c4b071379ae71262a88a 1500610 libdevel optional libc6-dev-i386_2.9-2_amd64.deb
5360b1cfd2d5d5cfb73c22b65ac16bf5 183518 admin optional nscd_2.9-2_amd64.deb
42d1923e64bf07a1f4d61a61d8f68934 15255810 libdevel extra libc6-dbg_2.9-2_amd64.deb
987c3f6be82f45c6f9b6c26c8b0a62ef 1116216 debian-installer extra libc6-udeb_2.9-2_amd64.udeb
7f8d8349e2c39155e0eb1e25e2fe5068 10834 debian-installer extra libnss-dns-udeb_2.9-2_amd64.udeb
f63fa48154d36aa689f3cf3d1092fd9a 19058 debian-installer extra libnss-files-udeb_2.9-2_amd64.udeb
Package-Type: udeb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
iD8DBQFJn9cTw3ao2vG823MRAvsYAJ9OCwwWDh/pn3NnBCi5h0TVOxODpwCaAmAe
MTL4wjcJKb7X9uSqmo/8iEs=
=TzkS
-----END PGP SIGNATURE-----
--- End Message ---