L'histoire que j'ai traitée parce qu'Apache était en panne à AH00144

A minuit, j'ai été informé que le système de production était en panne. image.png Le site Web du service BtoB n'a pas pu être ouvert. J'ai partagé l'information parce que j'ai traité de toute urgence le cas que je devais le résoudre à l'heure ouvrable du lendemain par la lutte de la force solitaire.

environnement

Un site Web qui fonctionne sur Ubuntu 16.04 sur Amazon EC2.

$ cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.3 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.3 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial

$ apache2 -v
Server version: Apache/2.4.18 (Ubuntu)

Journal des erreurs

Lorsque je me suis connecté au serveur, Apache était mort avec une erreur. Lorsque vous voyez la chaîne ** Erreur fatale **, vous tombez instantanément malade.

$ tail /var/log/apache2/error.log
[Tue Aug 25 20:51:54.215281 2020] [mpm_prefork:emerg] [pid 930](43)Identifier removed: AH00144: couldn't grab the accept mutex
[Tue Aug 25 20:51:54.215369 2020] [mpm_prefork:emerg] [pid 929](43)Identifier removed: AH00144: couldn't grab the accept mutex
[Tue Aug 25 20:51:54.216849 2020] [mpm_prefork:emerg] [pid 933](43)Identifier removed: AH00144: couldn't grab the accept mutex
[Tue Aug 25 20:51:54.217182 2020] [mpm_prefork:emerg] [pid 931](43)Identifier removed: AH00144: couldn't grab the accept mutex
[Tue Aug 25 20:51:54.218350 2020] [mpm_prefork:emerg] [pid 928](43)Identifier removed: AH00144: couldn't grab the accept mutex
[Tue Aug 25 20:51:54.218757 2020] [mpm_prefork:emerg] [pid 1336](43)Identifier removed: AH00144: couldn't grab the accept mutex
[Tue Aug 25 20:51:55.040404 2020] [core:alert] [pid 1287] AH00050: Child 928 returned a Fatal error... Apache is exiting!
[Tue Aug 25 20:58:05.444208 2020] [mpm_prefork:emerg] [pid 1333](22)Invalid argument: AH00146: couldn't release the accept mutex

ʻAH00144: impossible de saisir le mutex accepté` est affiché pour le nombre de processus.

Pour le moment, quand j'ai cherché sur Google ** AH00144 **, https://hirose31.hatenablog.jp/entry/2020/03/10/190010 J'ai trouvé un excellent blog! Même dans cet environnement, pour diverses raisons, Apache a été démarré en tant qu'utilisateur non système (l'uid est égal ou supérieur à 1000). La méthode de reproduction correspond également parfaitement.

Faire face

La procédure est simple.

/etc/apache2/apache2.conf


#Mutex file:${APACHE_LOCK_DIR} default

J'ai juste décommenté et redémarré. Vous pouvez créer un fichier comme / etc / apache2 / conf-available / mutex-file.conf.

Pourquoi êtes-vous curieux de savoir cette fois? Cependant, j'aimerais voir la situation pendant un moment.

Recommended Posts

L'histoire que j'ai traitée parce qu'Apache était en panne à AH00144
L'histoire de la confusion entre la production japonaise et Django
L'histoire que XGBoost a finalement été installé
L'histoire qui s'inscrit dans l'installation de pip
Lorsque j'explore la webapi qui apparaît pendant le rendu, elle a été lue avec CORS
Une histoire à laquelle j'étais accro chez np.where
L'histoire selon laquelle la valeur de retour de tape.gradient () était None
L'histoire selon laquelle ma pull request a été intégrée à Scipy
L'histoire selon laquelle la nouvelle bibliothèque de dessins "HiPlot" était plutôt bonne
Histoire que Python a cessé de travailler avec VS Code (Windows 10)
L'histoire de la définition de la clé privée à 600 avec chmod
L'histoire selon laquelle l'environnement Homebrew a été époustouflé lors de l'installation d'Anaconda
L'histoire selon laquelle le gardien était confiné lorsque le laboratoire a été converti à l'IoT
L'histoire de la création d'un module qui ignore le courrier avec python
J'ai réussi à convertir jpg en png car la transparence n'a pas été altérée