Site hors ligne après reconstruction (4 février 2025)

J’ai vu ce message après une reconstruction récente. J’ai ensuite exécuté ./launcher rebuild app, mais après cela, mon instance est devenue inaccessible. Il s’agit d’une installation standard, comment puis-je déterminer ce qui s’est passé ?

erreurs lorsque j’exécute ./launcher logs app

cd /var/discourse
./launcher logs app
x86_64 arch détecté.
run-parts : exécution de /etc/runit/1.d/00-ensure-links
run-parts : exécution de /etc/runit/1.d/00-fix-var-logs
run-parts : exécution de /etc/runit/1.d/01-cleanup-web-pids
run-parts : exécution de /etc/runit/1.d/anacron
run-parts : exécution de /etc/runit/1.d/cleanup-pids
Nettoyage des fichiers PID obsolètes
run-parts : exécution de /etc/runit/1.d/copy-env
run-parts : exécution de /etc/runit/1.d/letsencrypt
[mar. 4 févr. 17:38:16 UTC 2025] Domaines non modifiés.
[mar. 4 févr. 17:38:16 UTC 2025] Ignorer, prochaine date de renouvellement : 2025-03-02T20:15:28Z
[mar. 4 févr. 17:38:16 UTC 2025] Ajouter '--force' pour forcer le renouvellement.
[mar. 4 févr. 17:38:17 UTC 2025] Installation de la clé dans : /shared/ssl/mydomain.com.key
[mar. 4 févr. 17:38:17 UTC 2025] Installation de la chaîne complète dans : /shared/ssl/mydomain.com.cer
[mar. 4 févr. 17:38:17 UTC 2025] Commande de rechargement : sv reload nginx
avertissement : nginx : impossible d'ouvrir supervise/ok : le fichier n'existe pas
[mar. 4 févr. 17:38:17 UTC 2025] Erreur de rechargement pour :
[mar. 4 févr. 17:38:17 UTC 2025] Domaines non modifiés.
[mar. 4 févr. 17:38:17 UTC 2025] Ignorer, prochaine date de renouvellement : 2025-03-02T20:15:33Z
[mar. 4 févr. 17:38:17 UTC 2025] Ajouter '--force' pour forcer le renouvellement.
[mar. 4 févr. 17:38:18 UTC 2025] Installation de la clé dans : /shared/ssl/mydomain.com_ecc.key
[mar. 4 févr. 17:38:18 UTC 2025] Installation de la chaîne complète dans : /shared/ssl/mydomain.com_ecc.cer
[mar. 4 févr. 17:38:18 UTC 2025] Commande de rechargement : sv reload nginx
échec : nginx : runsv n'est pas en cours d'exécution
[mar. 4 févr. 17:38:18 UTC 2025] Erreur de rechargement pour :
Démarrage de runsvdir, PID : 567
ok : run : redis : (pid 577) 0s
ok : run : postgres : (pid 581) 0s
nginx : [avertissement] extension "wasm" dupliquée, type de contenu : "application/wasm", type de contenu précédent : "application/wasm" dans /etc/nginx/conf.d/discourse.conf:4
supervisor pid : 575 unicorn pid : 607
Arrêt en cours
run-parts : exécution de /etc/runit/3.d/01-nginx
ok : down : nginx : 1s, normalement en cours d'exécution
run-parts : exécution de /etc/runit/3.d/02-unicorn
(575) sortie
ok : down : unicorn : 0s, normalement en cours d'exécution
run-parts : exécution de /etc/runit/3.d/10-redis
ok : down : redis : 1s, normalement en cours d'exécution
run-parts : exécution de /etc/runit/3.d/99-postgres
ok : down : postgres : 0s, normalement en cours d'exécution
ok : down : nginx : 5s, normalement en cours d'exécution
ok : down : postgres : 1s, normalement en cours d'exécution
ok : down : redis : 3s, normalement en cours d'exécution
ok : down : cron : 0s, normalement en cours d'exécution
ok : down : unicorn : 4s, normalement en cours d'exécution
ok : down : rsyslog : 0s, normalement en cours d'exécution
run-parts : exécution de /etc/runit/1.d/00-ensure-links
run-parts : exécution de /etc/runit/1.d/00-fix-var-logs
run-parts : exécution de /etc/runit/1.d/01-cleanup-web-pids
run-parts : exécution de /etc/runit/1.d/anacron
run-parts : exécution de /etc/runit/1.d/cleanup-pids
Nettoyage des fichiers PID obsolètes
run-parts : exécution de /etc/runit/1.d/copy-env
run-parts : exécution de /etc/runit/1.d/letsencrypt
[mar. 4 févr. 17:58:32 UTC 2025] Domaines non modifiés.
[mar. 4 févr. 17:58:32 UTC 2025] Ignorer, prochaine date de renouvellement : 2025-03-02T20:15:28Z
[mar. 4 févr. 17:58:32 UTC 2025] Ajouter '--force' pour forcer le renouvellement.
[mar. 4 févr. 17:58:32 UTC 2025] Installation de la clé dans : /shared/ssl/mydomain.com.key
[mar. 4 févr. 17:58:32 UTC 2025] Installation de la chaîne complète dans : /shared/ssl/mydomain.com.cer
[mar. 4 févr. 17:58:32 UTC 2025] Commande de rechargement : sv reload nginx
échec : nginx : runsv n'est pas en cours d'exécution
[mar. 4 févr. 17:58:32 UTC 2025] Erreur de rechargement pour :
[mar. 4 févr. 17:58:32 UTC 2025] Domaines non modifiés.
[mar. 4 févr. 17:58:32 UTC 2025] Ignorer, prochaine date de renouvellement : 2025-03-02T20:15:33Z
[mar. 4 févr. 17:58:32 UTC 2025] Ajouter '--force' pour forcer le renouvellement.
[mar. 4 févr. 17:58:32 UTC 2025] Installation de la clé dans : /shared/ssl/mydomain.com_ecc.key
[mar. 4 févr. 17:58:32 UTC 2025] Installation de la chaîne complète dans : /shared/ssl/mydomain.com_ecc.cer
[mar. 4 févr. 17:58:32 UTC 2025] Commande de rechargement : sv reload nginx
échec : nginx : runsv n'est pas en cours d'exécution
[mar. 4 févr. 17:58:32 UTC 2025] Erreur de rechargement pour :
Démarrage de runsvdir, PID : 561
ok : run : redis : (pid 575) 0s
nginx : [avertissement] extension "wasm" dupliquée, type de contenu : "application/wasm", type de contenu précédent : "application/wasm" dans /etc/nginx/conf.d/discourse.conf:4
ok : run : postgres : (pid 580) 1s
supervisor pid : 570 unicorn pid : 601
Arrêt en cours
run-parts : exécution de /etc/runit/3.d/01-nginx
ok : down : nginx : 0s, normalement en cours d'exécution
run-parts : exécution de /etc/runit/3.d/02-unicorn
(570) exiting
ok : down : unicorn : 1s, normalement en cours d'exécution
run-parts : exécution de /etc/runit/3.d/10-redis
ok : down : redis : 0s, normalement en cours d'exécution
run-parts : exécution de /etc/runit/3.d/99-postgres
ok : down : postgres : 0s, normalement en cours d'exécution
ok : down : nginx : 3s, normalement en cours d'exécution
ok : down : postgres : 1s, normalement en cours d'exécution
ok : down : redis : 1s, normalement en cours d'exécution
ok : down : cron : 0s, normalement en cours d'exécution
ok : down : unicorn : 3s, normalement en cours d'exécution
ok : down : rsyslog : 0s, normalement en cours d'exécution
run-parts : exécution de /etc/runit/1.d/00-ensure-links
run-parts : exécution de /etc/runit/1.d/00-fix-var-logs
run-parts : exécution de /etc/runit/1.d/01-cleanup-web-pids
run-parts : exécution de /etc/runit/1.d/anacron
run-parts : exécution de /etc/runit/1.d/cleanup-pids
Nettoyage des fichiers PID obsolètes
run-parts : exécution de /etc/runit/1.d/copy-env
run-parts : exécution de /etc/runit/1.d/letsencrypt
[mar. 4 févr. 18:01:07 UTC 2025] Domaines non modifiés.
[mar. 4 févr. 18:01:07 UTC 2025] Ignorer, prochaine date de renouvellement : 2025-03-02T20:15:28Z
[mar. 4 févr. 18:01:07 UTC 2025] Ajouter '--force' pour forcer le renouvellement.
[mar. 4 févr. 18:01:07 UTC 2025] Installation de la clé dans : /shared/ssl/mydomain.com.key
[mar. 4 févr. 18:01:07 UTC 2025] Installation de la chaîne complète dans : /shared/ssl/mydomain.com.cer
[mar. 4 févr. 18:01:07 UTC 2025] Commande de rechargement : sv reload nginx
échec : nginx : runsv n'est pas en cours d'exécution
[mar. 4 févr. 18:01:07 UTC 2025] Erreur de rechargement pour :
[mar. 4 févr. 18:01:07 UTC 2025] Domaines non modifiés.
[mar. 4 févr. 18:01:07 UTC 2025] Ignorer, prochaine date de renouvellement : 2025-03-02T20:15:33Z
[mar. 4 févr. 18:01:07 UTC 2025] Ajouter '--force' pour forcer le renouvellement.
[mar. 4 févr. 18:01:07 UTC 2025] Installation de la clé dans : /shared/ssl/mydomain.com_ecc.key
[mar. 4 févr. 18:01:07 UTC 2025] Installation de la chaîne complète dans : /shared/ssl/mydomain.com_ecc.cer
[mar. 4 févr. 18:01:07 UTC 2025] Commande de rechargement : sv reload nginx
échec : nginx : runsv n'est pas en cours d'exécution
[mar. 4 févr. 18:01:07 UTC 2025] Erreur de rechargement pour :
Démarrage de runsvdir, PID : 561
ok : run : redis : (pid 575) 0s
ok : run : postgres : (pid 576) 0s
nginx : [avertissement] extension "wasm" dupliquée, type de contenu : "application/wasm", type de contenu précédent : "application/wasm" dans /etc/nginx/conf.d/discourse.conf:4
supervisor pid : 570 unicorn pid : 601
(570) exiting
nginx : [avertissement] extension "wasm" dupliquée, type de contenu : "application/wasm", type de contenu précédent : "application/wasm" dans /etc/nginx/conf.d/discourse.conf:4
3 « J'aime »

Tout se passait bien. J’ai vu ce qui suit et j’ai reconstruit. La compilation s’est terminée sans erreurs, mais mon site ne s’ouvre pas.

-------------------------------------------------------------------------------------
MISE À NIVEAU DE POSTGRES TERMINÉE

L'ancienne base de données 13 est stockée à /shared/postgres_data_old

Pour terminer la mise à niveau, reconstruisez à nouveau en utilisant :

./launcher rebuild app
-------------------------------------------------------------------------------------

Lorsque je lance ceci
tail /var/discourse/shared/standalone/log/var-log/postgres/current
Sortie

2025-02-04 18:11:50.943 UTC [573] LOG:  fermeture en cours
2025-02-04 18:11:50.945 UTC [573] LOG:  début de la vérification de point: arrêt immédiat
2025-02-04 18:11:50.970 UTC [573] LOG:  vérification de point terminée : écriture de 139 tampons (0.0%) ; 0 fichier WAL ajouté, 0 supprimé, 0 recyclé ; temps d'écriture=0.017 s, de synchronisation=0.005 s, total=0.027 s ; fichiers synchronisés=27, le plus long=0.002 s, la moyenne=0.001 s ; distance=410 kB, estimation=410 kB
2025-02-04 18:11:51.034 UTC [547] LOG:  le système de base de données est arrêté
2025-02-04 18:15:04.302 UTC [548] LOG:  démarrage de PostgreSQL 15.10 (Debian 15.10-1.pgdg120+1) sur x86_64-pc-linux-gnu, compilé par gcc (Debian 12.2.0-14) 12.2.0
2025-02-04 18:15:04.303 UTC [548] LOG:  écoute sur l'adresse IPv4 "0.0.0.0", port 5432
2025-02-04 18:15:04.303 UTC [548] LOG:  écoute sur l'adresse IPv6 "::", port 5432
2025-02-04 18:15:04.305 UTC [548] LOG:  écoute sur le socket Unix "/var/run/postgresql/.s.PGSQL.5432"
2025-02-04 18:15:04.313 UTC [575] LOG:  le système de base de données a été arrêté à 2025-02-04 18:14:37 UTC
2025-02-04 18:15:04.318 UTC [548] LOG:  le système de base de données est prêt à accepter les connexions

De plus, ./launcher logs app donne la sortie suivante

x86_64 arch détecté.
run-parts: exécution de /etc/runit/1.d/00-ensure-links
run-parts: exécution de /etc/runit/1.d/00-fix-var-logs
run-parts: exécution de /etc/runit/1.d/01-cleanup-web-pids
run-parts: exécution de /etc/runit/1.d/anacron
run-parts: exécution de /etc/runit/1.d/cleanup-pids
Nettoyage des fichiers PID anciens
run-parts: exécution de /etc/runit/1.d/copy-env
run-parts: exécution de /etc/runit/1.d/letsencrypt
[Tue Feb  4 06:15:03 PM UTC 2025] Domaines non modifiés.
[Tue Feb  4 06:15:03 PM UTC 2025] Ignorer, Prochain temps de renouvellement : 2025-02-09T00:30:10Z
[Tue Feb  4 06:15:03 PM UTC 2025] Ajouter '--force' pour forcer le renouvellement.
[Tue Feb  4 06:15:03 PM UTC 2025] Installation de la clé : /shared/ssl/forum.myforum.com.key
[Tue Feb  4 06:15:03 PM UTC 2025] Installation de la chaîne complète : /shared/ssl/forum.myforum.com.cer
[Tue Feb  4 06:15:03 PM UTC 2025] Exécution de la commande de rechargement : sv reload nginx
avertissement : nginx : impossible d'ouvrir supervise/ok : fichier n'existe pas
[Tue Feb  4 06:15:03 PM UTC 2025] Erreur de rechargement pour :
[Tue Feb  4 06:15:03 PM UTC 2025] Rechargement échoué pour :
[Tue Feb  4 06:15:03 PM UTC 2025] Ajout '--force' pour forcer le renouvellement.
[Tue Feb  4 06:15:04 PM UTC 2025] Installation de la clé : /shared/ssl/forum.myforum.com_ecc.key
[Tue Feb  4 06:15:04 PM UTC 2025] Installation de la chaîne complète : /shared/ssl/forum.myforum.com_ecc.cer
[Tue Feb  4 06:15:04 PM UTC 2025] Exécution de la commande de rechargement : sv reload nginx
avertissement : nginx : impossible d'ouvrir supervise/ok : fichier n'existe pas
[Tue Feb  4 06:15:04 PM UTC 2025] Erreur de rechargement pour :
Démarrage de runsvdir, PID est 537
ok: run: redis: (pid 552) 0s
ok: run: postgres: (pid 548) 0s
nginx : [avertissement] duplication de l'extension "wasm", type de contenu : "application/wasm", dans /etc/nginx/conf.d/discourse.conf :4
supervisor pid : 546 unicorn pid : 579
2 « J'aime »

Cela se produit également sur mes deux sites auto-hébergés, après la mise à jour depuis la ligne de commande aujourd’hui. Il s’agit d’installations très basiques sans personnalisation ni plugins non officiels, maintenues à jour régulièrement et qui se mettent à jour sans difficulté.

J’essaie actuellement les suggestions de @mwaniki ci-dessus et je verrai comment cela fonctionne, puis je ferai un retour ici.

2 « J'aime »

J’ai effectué une autre reconstruction de l’application, et la mise à jour s’est terminée avec succès, mais même si aucune erreur n’est visible, le site est inaccessible. Une idée ?

./launcher logs app

WARNING: Docker version 20.10.12 deprecated, recommend upgrade to 24.0.7 or newer.
x86_64 arch detected.
WARNING: containers/app.yml file is world-readable. You can secure this file by running: chmod o-rwx containers/app.yml
run-parts: executing /etc/runit/1.d/00-ensure-links
run-parts: executing /etc/runit/1.d/00-fix-var-logs
run-parts: executing /etc/runit/1.d/01-cleanup-web-pids
run-parts: executing /etc/runit/1.d/anacron
run-parts: executing /etc/runit/1.d/cleanup-pids
Cleaning stale PID files
run-parts: executing /etc/runit/1.d/copy-env
run-parts: executing /etc/runit/1.d/letsencrypt
[Tue Feb  4 07:12:15 PM UTC 2025] Domains not changed.
[Tue Feb  4 07:12:15 PM UTC 2025] Skip, Next renewal time is: 2025-03-06T00:39:07Z
[Tue Feb  4 07:12:15 PM UTC 2025] Add '--force' to force to renew.
[Tue Feb  4 07:12:16 PM UTC 2025] Installing key to: /shared/ssl/forum.******.com.key
[Tue Feb  4 07:12:16 PM UTC 2025] Installing full chain to: /shared/ssl/forum.*****.com.cer
[Tue Feb  4 07:12:16 PM UTC 2025] Run reload cmd: sv reload nginx
warning: nginx: unable to open supervise/ok: file does not exist
[Tue Feb  4 07:12:16 PM UTC 2025] Reload error for :
[Tue Feb  4 07:12:16 PM UTC 2025] Domains not changed.
[Tue Feb  4 07:12:16 PM UTC 2025] Skip, Next renewal time is: 2025-03-06T00:39:11Z
[Tue Feb  4 07:12:16 PM UTC 2025] Add '--force' to force to renew.
[Tue Feb  4 07:12:16 PM UTC 2025] Installing key to: /shared/ssl/forum.*****.com_ecc.key
[Tue Feb  4 07:12:16 PM UTC 2025] Installing full chain to: /shared/ssl/forum.ü_ecc.cer
[Tue Feb  4 07:12:16 PM UTC 2025] Run reload cmd: sv reload nginx
warning: nginx: unable to open supervise/ok: file does not exist
[Tue Feb  4 07:12:16 PM UTC 2025] Reload error for :
Started runsvdir, PID is 535
ok: run: redis: (pid 545) 0s
nginx: [warn] duplicate extension "wasm", content type: "application/wasm", previous content type: "application/wasm" in /etc/nginx/conf.d/discourse.conf:4
ok: run: postgres: (pid 548) 0s
supervisor pid: 542 unicorn pid: 575
2 « J'aime »

Je pense que ce « site ne répond pas du tout » n’est pas lié à la mise à jour de postgres. Je m’en occupe tout de suite :eyes:

5 « J'aime »

J’attends avec impatience que ce problème soit résolu. Je reçois des centaines d’e-mails de mes utilisateurs me demandant pourquoi je ne peux pas accéder au forum :frowning:

4 « J'aime »

Désolé pour le désagrément à tous ! Le correctif est maintenant en ligne, donc lancer un autre ./launcher rebuild app devrait tout remettre en marche.

Merci de nous faire savoir si vous rencontrez encore des problèmes après cela.

13 « J'aime »

au travail :slight_smile:

4 « J'aime »

yuppy fonctionne, le forum est de retour. Merci pour la solution rapide. C’est pourquoi nous aimons Discourse :heart:

4 « J'aime »

Merci d’avoir résolu ce problème ! J’ai également passé les 2 dernières heures à essayer de comprendre ce qui n’allait pas avec ma reconstruction. Tout va bien maintenant !

Une méta-observation : lors de la recherche du problème sur ce forum, le tri par défaut « Pertinence » des résultats de recherche du forum m’a desservi. Les journaux d’erreurs sur lesquels j’ai recherché étaient exactement les mêmes qu’ici, mais ce sujet récent n’est apparu que plusieurs pages plus loin dans la liste des résultats (probablement en raison de sa récente création). Par conséquent, je n’ai trouvé ce sujet qu’en ouvrant au hasard la page d’accueil de Meta où il était tendance. Je suppose que c’est une note pour moi-même/les autres de vérifier également la page d’accueil ou les résultats les plus récents lors de la recherche d’un futur problème de reconstruction.

6 « J'aime »

C’est un excellent retour ! Notez que cette conversation se déroulait initialement sur PostgreSQL 15 update jusqu’à ce que David réalise que cela n’avait rien à voir avec la mise à jour de PostgreSQL et déplace les messages pertinents vers un nouveau sujet. Cela ne s’est produit qu’il y a environ une heure, vous n’auriez donc pas pu le trouver avant cela !

Le dépannage des mises à jour échouées est notoirement difficile - d’autant plus que la mise à jour de Discourse est généralement si fluide que la plupart d’entre nous, auto-hébergeurs, n’avons pas à apprendre le fonctionnement interne de Discourse et les étapes de dépannage !

Merci @david de vous être penché sur la question et d’avoir trouvé la solution si rapidement !

3 « J'aime »

J’ai mis à jour Docker depuis l’application mobile, puis j’ai reçu le redoutable message « go update via console », qui signale généralement des difficultés à venir.

J’ai suivi toutes les étapes de mise à jour manuelle, et la reconstruction de l’application par le lanceur échoue à chaque fois.

Je suis en mesure de récupérer avec un démarrage de l’application par le lanceur, donc le site fonctionne.

Il ne m’est pas clair si cela est lié aux erreurs postgres, ou à l’endroit où je pourrais avoir des problèmes.

2 « J'aime »

Cela suggère qu’il ne s’agit pas du même problème que celui discuté dans ce sujet.
Pour ce problème, la reconstruction réussissait sans erreur, mais le site ne se chargeait pas. ./launcher start n’a pas aidé.

Je vous suggère donc d’ouvrir un nouveau sujet de Support avec les détails de l’erreur que vous rencontrez.

2 « J'aime »

Mon site est de nouveau en ligne après la reconstruction. Merci ! :+1:

4 « J'aime »

Finalement, un problème de compréhension de lecture de ma part, je peux affirmer que le problème était que la base de données Postgres ne s’arrêtait pas correctement. Une fois que j’ai suivi les bonnes instructions, tout est rentré dans l’ordre. Merci à tous, c’est agréable d’avoir un endroit où, lorsque les choses tournent mal et que je panique un peu, il y a des têtes plus froides ici pour aider.

Merci !!!

7 « J'aime »

Ne fonctionne pas pour moi

2 « J'aime »

Alors ça doit être un autre problème. Veuillez ouvrir un nouveau sujet de Support avec les détails et nous ferons de notre mieux pour vous aider.

Pour éviter toute confusion, je vais clore ce sujet, car ce problème spécifique est résolu.