Gentoo : crash récurrent de nscd sous amd64

Boris HUISGEN
Boris HUISGEN
|

Le démon nscd est chargé de gérer le cache de résultats des services de noms. Ce dernier a tendance à crasher toutes les dix minutes, plus ou moins, sur un système Linux 64 bits. Etudions son remplacement par un composant plus stable.

L’interruption de ce composant est fort problématique dans le cadre d’un serveur OpenLDAP étant donné son rôle de cache des requêtes LDAP courantes. De plus, le login des utilisateurs par authentification LDAP est impacté sur le serveur lui-même.

Une solution viable est de remplacer ce composant par un équivalent dénommé unscd.

Le script de démarrage pour Gentoo/amd64 est le suivant :

 1#!/sbin/runscript
 2
 3depend() {
 4  use dns ldap net slapd
 5}
 6
 7checkconfig() {
 8  if [ ! -d /var/run/nscd ] ; then
 9      mkdir -p /var/run/nscd
10      chmod 755 /var/run/nscd
11  fi
12}
13
14start() {
15  checkconfig
16  ebegin "Starting Micro Name Service Cache Daemon"
17  start-stop-daemon --start --quiet --exec /sbin/unscd
18  eend $?
19}
20
21stop() {
22  ebegin "Shutting down Micro Name Service Cache Daemon"
23  start-stop-daemon --stop --quiet --exec /sbin/unscd
24  eend $?
25}

En conclusion de cet article, un commentaire de l’auteur d’unscd :

It is well known that nscd provided with glibc is buggy. > This leads people to invent babysitters which restart crashed/hung nscd. This is ugly. > After looking at nscd source in glibc I arrived to the conclusion that it’s flawed by design and cannot be fixed. > Even if nscd’s own code is 100.00% perfect and bug-free, it can still suffer from bugs in libraries it calls.

Boris HUISGEN
Boris HUISGEN
Blog owner
  • #linux
  • #gentoo
  • #openldap
  • #nscd