Je me suis fait une belle frayeur lors de la montée en version de mon instance NextCloud.

Tout d'abord, le passage en V.21 m'était proposé. J'avais attendu un peu, parce que certaines extensions n'étaient pas encore disponible pour cette version, et ce matin, je me suis décidé de sauter le pas.

J'utilise donc l'updater via le web pour effectuer ça, les changements se font de manière transparente, mon serveur vit sa vie, et je continue d'utiliser les autres services qui tournent encore...

Jusqu'au moment où ça ne tourne plus. Plus du tout, même.

Crash complet du serveur... montée en version qui était en cours... Autant dire que j'ai fait une suée assez notable (parce que même si un backup était là, il fallait que j'arrive à le restaurer.)

Obligé d'utiliser la console distante pour le redémarrer... et au bout de quelques courtes minutes, de nouveau plus rien qui ne répond.

Je recommence à le reboot, puis je surveille via HTOP sa santé, et vois au bout de quelques minutes un process php qui se lance dans le répertoire nextcloud et me consomme quelques gigas de RAM. Puis les 16 Go. Et aussi le swap... et le serveur crash à nouveau.

La dessus, nouveau reboot, nouvelle suée, et à peine le serveur rebooté, je coupe le service mysql, puisque NextCloud en a besoin pour fonctionner... de là, le service reste stable. Je check ma configuration mysql : rien. Ma configuration Apache : rien. Ma configuration PHP : les valeurs de limite mémoire sont OK : 2Gb pour Apache, 2Gb pour Php-fpm, -1 pour la CLI, et également 1Gb p...

-1 pour la CLI?

OK, donc mon coupable était là : -1 signifie "tout ce dont tu as besoin, sans limites."

Je lui donne une limite fixe, j’attends de voir si le serveur se fait de nouveau manger toute sa mémoire (fort heureusement, non) et je relance l'upgrade (en ligne de commande cette fois, via occ, puisque bloqué en mode maintenance) et là....

PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 20480 bytes) in /usr/share/webapps/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php on line 133

Il me refuse TOUTES les commandes occ. Je ne peux rien faire, réparer l'update, sortir du mode maintenance... RIEN.

Fort heureusement, une (longue série de) recherche sur Internet m'auront permis de trouver une réponse.

Dans mon cas, j'utilise APCu qui permet de faire un cache au niveau de NextCloud, et il s'avère qu'il faut ajouter une petite information afin qu'il soit en mesure d'être utilisable depuis la ligne de commande s'il a une limite de mémoire. Dans mon fichier /etc/php/7.4/cli/conf.d/20-apcu.ini j'ai juste ajouté :

apc.enable_cli=1

et j'ai relancé les commandes : le tour était joué.

J'espère que vous n'aurez pas la même frayeur que moi :D

Ajouter un commentaire

Article précédent Article suivant