[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#516212: marked as done (nscd: init script doesn't flush cache during restart/reload)



Your message dated Sat, 21 Feb 2009 10:47:31 +0000
with message-id <E1LapON-00049d-Nl@ries.debian.org>
and subject line Bug#516212: fixed in glibc 2.9-2
has caused the Debian Bug report #516212,
regarding nscd: init script doesn't flush cache during restart/reload
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
516212: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=516212
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- 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 ---

Reply to: