Défaut Apache Seg (11)

8

J'ai ceci dans mon erreur apace.log:

[Ven 18 sept 08:10:54 2009] [avis] enfant pid 9178 défaut de segmentation du signal de sortie (11)
[ven sept 18 08:11:41 2009] [avis] enfant pid 9187 signal de sortie défaut de segmentation du signal (11)
[ven 18 septembre 08:12:12 2009] [avis] enfant pid 9204 défaut de segmentation du signal de sortie (11)
[ven. 18 sept. 08:12:13 2009] [avis] enfant pid 9202 signal de sortie défaut de segmentation (11)
[ven. 18 sept. 08:14:45 2009] [préavis] enfant pid 9251 signal de sortie défaut de Segmentation (11)

Cela a commencé le même jour que j'ai fait un ajout au fichier vhost.conf. Je suis donc revenu au fichier d'origine et j'ai redémarré apache2ctl. Malheureusement, cela se produit toujours.

Apache semble servir des pages OK.

Des idées?

À votre santé,

Nathan.

Nathan Friend
la source

Réponses:

5

Nathan, essayez d'arrêter Apache et de le démarrer au premier plan (débogage, non-threadé), ce qui peut révéler plus d'indices sur ce qui le rend défectueux.

Cela dit, cela ne devrait pas se reproduire malgré tout, c'est donc un bug, néanmoins, il peut être quelque chose que vous pouvez corriger si vous savez ce qui en est la cause.

apache2 -X

En outre (peu susceptible de révéler la raison complète de ce problème), tous les avertissements / erreurs de ...

 apache2ctl -t

...?

Enfin, tous les modules que vous avez chargés dans Apache sont "certifiés", vous pouvez peut-être commenter environ la moitié d'entre eux et voir si le problème disparaît ou non, et poursuivre avec une recherche binaire diviser pour mieux régner à partir de là.

Vous pouvez également rechercher des vidages de mémoire produits à partir du défaut de segmentation, peut-être dans / tmp? Si vous en trouvez, essayez de l'exécuter via gdb ...

gdb apache2 -c /tmp/core.<pid>
Xerxès
la source
Généralement de bons conseils, mais je ne dirais pas que c'est un bug apache à moins que vous n'ayez exclu des choses comme l'utilisation du mauvais mpm ou d'un module tiers buggy. Ou des autorisations sur les fichiers si les threads s'exécutent en tant qu'utilisateur différent ou quelque chose comme ça. Beaucoup de choses à examiner vraiment. Mais oui, commencez par les journaux de débogage. ps: c'est pourquoi il est bon d'avoir la configuration d'Apache sous contrôle de version;)
Lee B
La vérification de la syntaxe revient OK. Je ne veux pas vraiment le redémarrer en mode débogage pendant les heures de cœur, je vais essayer ce soir lorsque les serveurs seront moins occupés. Merci pour vos suggestions jusqu'à présent.
Nathan Friend
Je viens de lire ce que j'ai écrit - et je suis d'accord avec Lee - je n'oserais pas dire que c'est un bogue Apache, ce que j'aurais dû préciser, c'est que le bogue appartient presque certainement à l'un des modules apache tiers chargés, et non Apache lui-même. :)
Xerxes
5

Les sig11 ne se produisent généralement que pour l'une des deux raisons:

  • Mauvais programmes.

    Dans le cas d'Apache, il est statistiquement peu probable qu'il s'agisse d'un bogue dans le code principal d'Apache.

    Il est beaucoup plus courant d'être un défaut d'un module. Soit de la façon dont un module traite en toute sécurité les exceptions dans le code ou les bibliothèques qu'il traite. Ou la façon dont il interagit avec le modèle MPM choisi par Apache. Lorsqu'un module se comporte mal de cette manière, il se ferme de façon incontrôlable avant de renvoyer des données au processus enfant Apache et génère ainsi le défaut de segmentation.

    Passez en revue toutes les modifications que vous avez apportées depuis la dernière opération. Comme le dit Lee B , c'est l'exemple parfait pour utiliser le contrôle de version.

    Pour compliquer légèrement les choses, vous pouvez souvent produire le même comportement en émettant un gracefulau lieu d'un redémarrage complet après avoir apporté des modifications à la configuration du module d'Apache. Vous pouvez exclure cela en arrêtant et en démarrant Apache.

  • Mauvais matériel.

    Si vous êtes sûr que les erreurs coïncident avec votre changement de configuration et que vous ne voyez aucun autre effet néfaste sur le système, vous pouvez probablement exclure cela. Mais il peut être utile de garder à l'esprit si vous manquez d'autres voies. Les processeurs et la RAM sont les coupables typiques.

Dan Carley
la source
J'ai également observé cette erreur sur un système fonctionnant avec un espace de swap libre insuffisant. Il y avait également d'autres processus dans le défaut de segmentation de journal de système et se plaignant sur l'espace libre libre insuffisant.
try-catch-finally
3

Enfin, cela a été corrigé. Un simple redémarrage du serveur a stoppé les erreurs de segmentation.

Merci pour vos réponses. Je suis sûr qu'il est utile pour diagnostiquer les problèmes futurs.

Nathan.

Nathan Friend
la source
1

Je suppose que ce pourrait être un module chargé ayant un problème.

J'ai connu le même comportement avec PHP et l'extension php gettext, il faisait planter PHP et donc l'enfant d'Apache servant la requête.

drAlberT
la source
1

Après avoir passé des heures à essayer de comprendre la cause de ma propre erreur de segmentation, j'ai commencé à désactiver des choses au hasard. Dans mon cas, la cause de l'erreur était l'accélérateur de Zend.

Comme je n'ai pas besoin de cette extension, je la laisse désactivée. Si vous rencontrez le même problème et avez besoin de cette extension, vous pouvez essayer de supprimer le cache eaccelerator et de redémarrer httpd.


la source