Archives du 18 novembre 2007

[BUG] apache 2 sur Debian lenny

Ce matin, je me suis aperçu que le blog spiroid n’était plus en ligne. En cherchant la cause sur le serveur et en analysant les logs d’erreur d’apache j’ai trouvé la ligne suivante :

[crit] (28) No space left on device: mod_rewrite: could not create rewrite_log_lock Configuration Failed

Je me suis cependant assuré qu’il restait de la place sur le disque dur à l’aide de la commande ‘df‘. Après une rapide recherche sur internet, j’ai trouvé que je n’étais pas le seul avoir ce problème.

Rapport de bug

Le bug a été signalé sur le système de bugtracking de debian : http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=450831

Les informations importantes :
Version d’apache concernée: 2.2.6-1
Debian : Lenny
Package : apache2-mpm-prefork

Cause

L’origine du problème pourrait venir de l’utilisation des sémaphores par le module rewrite (url rewriting).
On peut supposer qu’il s’agit d’un problème d’allocation mémoire.

Solution

Pas de patchs ni de correctifs ont été proposés pour le moment.

Solution temporaire

Pour débloquer la situation et libérer les ressources, entrez la commande suivante :
ipcs -s | grep www-data | awk ' { print $2 } ' | xargs ipcrm sem

Le problème est bloquant et risque de survenir après la rotation des logs configurée en général pour se produire chaque jour ou chaque semaine en temps normal. On peut ajouter temporairement la commande ci dessus dans les scripts de configuration de logrotate pour l’executer après chaque redémarrage d’apache lors des rotations de log (Non testé !)

A suivre …

EDIT : Corrigé depuis la version 2.2.8
EDIT : La correction du bug est prévue officiellement pour la version 2.2.9-3

Additious

Debian alternatives

Le premier post de ce blog porte sur une fonctionnalité peu connue mais indispensable pour une administrateur système Debian : les alternatives.

Toutes les distributions Linux fournissent un ensemble de programmes qui offrent des fonctionnalités identiques ou semblables. Ainsi, on trouve sur la plupart des systèmes plusieurs éditeurs de texte : vi, emacs, nvi, ed ou encore nano. Chaque utilisateur a sa préférence, et peut utiliser l’éditeur de son choix en appelant la commande correspondante.

Les choses se compliquent en revanche lorsqu’un programme doit proposer le bon éditeur alors que l’utilisateur n’a pas défini explicitement lequel il voulait utiliser. Debian propose une solution avec le système d’”Alternatives”.

En réalité, lorsqu’un programme nécessite que l’utilisateur modifie un fichier, il appelle un “éditeur générique”. Cet éditeur générique /usr/bin/editor est en fait un lien symbolique vers une entrée dans le répertoire des alternatives : /etc/alternatives/editor. /etc/alternatives/editor renvoie à son tour vers un des éditeurs présents sur la machine et choisi par l’administrateur système. Par exemble : /usr/bin/vim.

L’outil pour gérer les alternatives est update-alternatives
Quelques exemples d’utilisation :

  • Configurer Vim comme éditeur système par défaut :
    update-alternatives --set editor /usr/bin/vim.basic
  • Choisir un éditeur dans la liste des éditeurs installés sur le système :
    update-alternatives --config editor
  • Less en tant que pager par défaut :
    update-alternatives --set pager /usr/bin/less

Grâce à une bonne gestion des alternatives, l’administrateur système Debian contrôle son environnement et va mettre en place
une stratégie d’utilisation des programmes par défaut et faciliter son travail quotidien.

Plus d’informations sur le sujet :

Et surtout n’oubliez pas : man update-alternatives reste votre meilleure source d’informations :)

Additious