Comment traquer la défaillance de Discourse upstream dans un container résultant en une 502 Bad Gateway

(Oui, j’ai cherché d’abord)

Après avoir récemment utilisé l’interface de mise à niveau de l’administrateur, mon instance Discourse a cessé de fonctionner, répondant par 502 Bad Gateway.

Je suis entré dans le conteneur et il semble qu’il exécute un nginx qui attend un serveur sur localhost:3000, lequel ne fonctionne pas.

(54) Waiting for new unicorn workers under 3802725 to start up...
(54) Waiting for new unicorn workers under 3802725 to start up...
(54) Old pid is: 3800363 New pid is: 3802725
config/unicorn_launcher: line 71: kill: (3802725) - No such process
config/unicorn_launcher: line 15: kill: (3802725) - No such process
(54) exiting
ok: run: redis: (pid 62) 3418739s
ok: run: postgres: (pid 53) 3418739s
supervisor pid: 3803896 unicorn pid: 3803900
config/unicorn_launcher: line 71: kill: (3803900) - No such process
config/unicorn_launcher: line 15: kill: (3803900) - No such process
(3803896) exiting

ceci est suivi à plusieurs reprises par :

ok: run: redis: (pid 64) 4905s
ok: run: postgres: (pid 65) 4905s
supervisor pid: 18571 unicorn pid: 18575
config/unicorn_launcher: line 71: kill: (18575) - No such process
config/unicorn_launcher: line 15: kill: (18575) - No such process
(18571) exiting

J’aimerais ouvrir ce fil pour obtenir de l’aide dans le débogage de ce problème ; quelle est la prochaine étape - quelle commande Discourse essaie d’exécuter. (Je sais que je pourrais le découvrir en lisant/en faisant de l’ingénierie inverse du code, mais il pourrait être utile d’avoir un fil de discussion à ce sujet sur le forum.)

Je serais reconnaissant pour toute indication.

1 « J'aime »

Commencez par une recherche :wink:

Cela ressemble à ceci ?

Utilisez-vous une installation standard totalement vierge ?

Étant donné le calendrier, cela est très probablement lié à une modification de data-explorer qui a causé des problèmes. Nous l’avons maintenant annulée, donc si vous réessayez la reconstruction, cela devrait mieux fonctionner

3 « J'aime »

Oui, j’utilise l’explorateur de données. Je n’ai pas fait de git pull avant de redémarrer.
Lorsque je fais un git pull, puis ./launcher restart app, le problème n’est pas résolu.

Sauf que je l’exécute derrière un nginx sur l’hôte.
(Et j’ai quelques plugins, comme l’explorateur de données.)

J’essaie maintenant ./launcher rebuild app - j’espère que la reconstruction de l’application préservera la base de données de mon forum… et que je ne me retrouverai pas avec mon forum réinitialisé.
Faire launcher rebuild app ne résout pas le problème.

Ce post décrit un problème avec les conteneurs privilégiés par rapport aux conteneurs non privilégiés, mais ne fournit pas plus d’informations. Il date également de 2 ans, il n’est donc peut-être pas lié à une mise à jour récente.

Bien sûr, la base de données se trouve sur le dossier partagé monté, elle persiste donc.

Redémarrer le conteneur après un git pull ne suffira probablement pas.

Compris. J’ai aussi ./launcher rebuild app - cela ne mettrait-il pas à jour les plugins ?

Oui, cela mettra également à jour les plugins (tant qu’ils sont clonés dans app.yml)

Si cela fait toujours l’objet d’une enquête, j’ai eu une erreur 502 de passerelle, mais pas directement après la routine de mise à jour qui a échoué à mi-chemin avec une erreur de version Ruby. Comme je n’avais pas mis à jour le serveur depuis environ six semaines, j’ai exécuté apt update/upgrade et redémarré. C’est à ce moment-là que l’erreur 502 s’est produite, je n’ai pas pu faire fonctionner le site web du forum. La reconstruction de l’application a résolu les problèmes et a également mis à jour Discourse entièrement.

Pour information, j’ai ces plugins installés et activés :

discourse-bbcode
discourse-data-explorer
discourse-docs
docker_manager
styleguide

et ceux-ci installés mais désactivés :

discourse-topic-list-previews
discoursepage

4 messages ont été déplacées vers un nouveau sujet : Y a-t-il un diagnostic étape par étape lorsqu’un site Discourse affiche une erreur 502 Bad Gateway ?