Site inaccessible après la mise à jour de 3.4.0 à 3.4.1

Salut tout le monde,

Je viens de mettre à jour mon instance Discourse de la version 3.4.0 à 3.4.1 (avec ./launcher rebuild app). La mise à jour s’est déroulée sans problème — aucune erreur pendant le processus, et le conteneur Docker fonctionne. Cependant, le site est complètement inaccessible.

Quelqu’un a-t-il déjà rencontré ce problème ? Des idées sur la façon de dépanner ? Comment puis-je vous fournir plus d’informations ?

Merci d’avance pour votre aide !

Salut,

As-tu essayé de reconstruire une seconde fois ?
Il y a des situations où cela peut aider. Je commencerais par là.

Tu peux aussi regarder dans ./launcher logs app et /shared/standalone/log/rails/production.log si tu vois quelque chose d’intéressant.

1 « J'aime »

Nous expérimentons un répondeur IA, il donne ici des conseils, dans ce cas, il a donné des conseils raisonnables :

Bonjour, il semble que votre problème puisse être résolu en examinant les journaux du serveur pour diagnostiquer ce qui s’est mal passé après la mise à niveau. Voici comment vous pouvez procéder :

  1. Vérifiez les journaux d’erreurs de Discourse dans l’interface d’administration :

    • Si vous avez un accès administrateur et que le site est encore partiellement accessible, vous pouvez consulter les journaux depuis le panneau d’administration. Naviguez vers /logs pour trouver les messages d’erreur.
  2. Inspectez les autres journaux du serveur :

    • Exécutez les commandes suivantes sur votre serveur :
    cd /var/discourse
    ./launcher enter app
    cd /shared/log/rails
    less production.log
    
    • Utilisez less ou des outils similaires pour lire les journaux et identifier les erreurs potentielles.
  3. Vérifiez les journaux NGINX :

    • Vous pouvez vérifier les journaux NGINX pour les erreurs du serveur web avec :
    cd /var/discourse
    ./launcher enter app
    cd /var/log/nginx
    less error.log
    
  4. Problèmes réseau et DNS :

    • Exécutez des tests pour vous assurer que le DNS de votre domaine se résout correctement et que les ports comme 443 et 80 sont accessibles.

Faites-nous savoir ce que vous trouvez dans les journaux, et nous pourrons vous fournir des détails plus spécifiques pour vous aider à résoudre le problème.

Ressources utiles :

Contexte supplémentaire :
Si le problème persiste, les causes courantes peuvent être :

  • Une incompatibilité de plugin après la mise à niveau.
  • Une mémoire/un espace de stockage insuffisant pendant la reconstruction.
  • Des modifications de configuration dans app.yml.
2 « J'aime »

Merci !

Oui, et même résultat

Voici les logs :

[default] start
[default] done
[default] Shutting down
[default] Terminating quiet threads
[default] Scheduler exiting...
[default] Pausing to allow jobs to finish...
[default] Bye!
[default] [PrettyText] Deprecation notice: `registerOption() from `pretty-text` is deprecated. Use `helper.registerOptions()` instead. [deprecated since Discourse 2.8.0.beta9] [removal in Discourse 2.9.0.beta1] [deprecation id: discourse.pretty-text.registerOption]
[default] Booting Sidekiq 6.5.12 with Sidekiq::RedisConnection::RedisAdapter options {:host=>"data", :port=>6379, :namespace=>"sidekiq"}
[default] [PrettyText] Deprecation notice: `registerOption() from `pretty-text` is deprecated. Use `helper.registerOptions()` instead. [deprecated since Discourse 2.8.0.beta9] [removal in Discourse 2.9.0.beta1] [deprecation id: discourse.pretty-text.registerOption]
[default] [PrettyText] Deprecation notice: `registerOption() from `pretty-text` is deprecated. Use `helper.registerOptions()` instead. [deprecated since Discourse 2.8.0.beta9] [removal in Discourse 2.9.0.beta1] [deprecation id: discourse.pretty-text.registerOption]
[default] [PrettyText] Deprecation notice: `registerOption() from `pretty-text` is deprecated. Use `helper.registerOptions()` instead. [deprecated since Discourse 2.8.0.beta9] [removal in Discourse 2.9.0.beta1] [deprecation id: discourse.pretty-text.registerOption]
[default] [PrettyText] Deprecation notice: `registerOption() from `pretty-text` is deprecated. Use `helper.registerOptions()` instead. [deprecated since Discourse 2.8.0.beta9] [removal in Discourse 2.9.0.beta1] [deprecation id: discourse.pretty-text.registerOption]
[default] Booted Rails 7.2.2.1 application in production environment
[default] Running in ruby 3.3.6 (2024-11-05 revision 75015d4c1f) [x86_64-linux]
[default] See LICENSE and the LGPL-3.0 for licensing details.
[default] Upgrade to Sidekiq Pro for more features and support: https://sidekiq.org
[default] start
[default] done
root@forum-web-only:/shared/log/rails#

Voici les logs NGINX :

2025/03/07 22:13:42 [warn] 2195#2195: duplicate extension "wasm", content type: "application/wasm", previous content type: "application/wasm" in /etc/nginx/conf.d/discourse.conf:4
2025/03/07 22:13:42 [emerg] 2195#2195: unknown "public" variable
2025/03/07 22:13:43 [warn] 2198#2198: duplicate extension "wasm", content type: "application/wasm", previous content type: "application/wasm" in /etc/nginx/conf.d/discourse.conf:4
2025/03/07 22:13:43 [emerg] 2198#2198: unknown "public" variable
2025/03/07 22:13:44 [warn] 2200#2200: duplicate extension "wasm", content type: "application/wasm", previous content type: "application/wasm" in /etc/nginx/conf.d/discourse.conf:4
2025/03/07 22:13:44 [emerg] 2200#2200: unknown "public" variable
2025/03/07 22:13:45 [warn] 2202#2202: duplicate extension "wasm", content type: "application/wasm", previous content type: "application/wasm" in /etc/nginx/conf.d/discourse.conf:4
2025/03/07 22:13:45 [emerg] 2202#2202: unknown "public" variable
2025/03/07 22:13:46 [warn] 2204#2204: duplicate extension "wasm", content type: "application/wasm", previous content type: "application/wasm" in /etc/nginx/conf.d/discourse.conf:4
2025/03/07 22:13:46 [emerg] 2204#2204: unknown "public" variable

Voici les logs discourse-doctor :

DISCOURSE DOCTOR Fri 07 Mar 2025 10:15:28 PM UTC
OS: Linux forum 5.4.0-208-generic #228-Ubuntu SMP Fri Feb 7 19:41:33 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux


YML=web_only.yml
Found containers/web_only.yml

==================== YML SETTINGS ====================
DISCOURSE_HOSTNAME=forum.pragmaticentrepreneurs.com
SMTP_ADDRESS=smtp.eu.mailgun.org
DEVELOPER_EMAILS=REDACTED

==================== YML SETTINGS ====================
DISCOURSE_HOSTNAME=forum.pragmaticentrepreneurs.com
SMTP_ADDRESS=smtp.eu.mailgun.org
DEVELOPER_EMAILS=REDACTED
SMTP_PASSWORD=REDACTED
SMTP_PORT=587
SMTP_USER_NAME=postmaster@mg.pragmaticentrepreneurs.com
LETSENCRYPT_ACCOUNT_EMAIL=REDACTED

==================== DOCKER INFO ====================
DOCKER VERSION: Docker version 27.3.1, build ce12230

DOCKER PROCESSES (docker ps -a)

CONTAINER ID   IMAGE                      COMMAND        CREATED         STATUS         PORTS                                       NAMES
d5a81b9154f4   local_discourse/web_only   "/sbin/boot"   6 minutes ago   Up 6 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   web_only
0b49a4b64386   local_discourse/data       "/sbin/boot"   19 months ago   Up 22 hours                                                 data


Discourse container web_only is running


==================== PLUGINS ====================
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-akismet.git
          - git clone https://github.com/discourse/discourse-data-explorer.git
          - git clone https://github.com/camilleroux/discourse-affiliate.git
          - git clone https://github.com/somoza/discourse-xorigin.git
          - git clone https://github.com/discourse/discourse-chat-integration.git

WARNING:
You have what appear to be non-official plugins.
If you are having trouble, you should disable them and try rebuilding again.

See https://github.com/discourse/discourse/blob/main/lib/plugin/metadata.rb for the official list.

========================================
Discourse version at forum.pragmaticentrepreneurs.com: NOT FOUND
Discourse version at localhost: NOT FOUND


==================== MEMORY INFORMATION ====================
OS: Linux
RAM (MB): 2067

              total        used        free      shared  buff/cache   available
Mem:           1971         988         101         178         881         627
Swap:          2047         190        1857

==================== DISK SPACE CHECK ====================
---------- OS Disk Space ----------
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        49G   39G   11G  80% /

==================== DISK INFORMATION ====================
Disk /dev/loop0: 55.37 MiB, 58052608 bytes, 113384 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop1: 63.76 MiB, 66842624 bytes, 130552 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop2: 55.37 MiB, 58052608 bytes, 113384 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop3: 91.85 MiB, 96292864 bytes, 188072 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop4: 91.9 MiB, 96346112 bytes, 188176 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop5: 63.71 MiB, 66789376 bytes, 130448 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop6: 44.45 MiB, 46596096 bytes, 91008 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop7: 44.46 MiB, 46604288 bytes, 91024 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/vda: 50 GiB, 53687091200 bytes, 104857600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 603625F3-7AE2-40CB-B05E-0BD7EA2D57E4

Device      Start       End   Sectors  Size Type
/dev/vda1  227328 104857566 104630239 49.9G Linux filesystem
/dev/vda14   2048     10239      8192    4M BIOS boot
/dev/vda15  10240    227327    217088  106M Microsoft basic data

Partition table entries are not in disk order.

==================== END DISK INFORMATION ====================

==================== MAIL TEST ====================
For a robust test, get an address from http://www.mail-tester.com/
Sending mail to REDACTED  . .
Testing sending to  using smtp.eu.mailgun.org:587, username:*** with plain auth.
SMTP server connection successful.
Sending to . . .
Mail was not sent.

Reason: 501 Invalid command or cannot parse to address

==================== DONE! ====================

Cela donne-t-il plus d’informations ?

1 « J'aime »

Salut ! Quelqu’un voit comment je pourrais corriger ça ? Merci beaucoup :folded_hands:

1 « J'aime »

Cela fonctionne pour moi. Peut-être parce que je ne suis pas connecté. Vous pourriez donc essayer le mode sans échec.

L’un de vos plugins n’est pas officiel et est très ancien, c’est un fork d’un plus récent :

Salut ! Merci pour ton aide. J’ai continué à enquêter.

Contexte :

Tests :

  • Même problème lorsque j’essaie de ne garder que les plugins essentiels et officiels.
  • La 3.4.2 ne résout pas le problème ; même résultat qu’avec la 3.4.0.
  • Je ne peux pas accéder au mode sans échec car après la reconstruction, le site web est inaccessible.
  • Lorsque je restaure le snapshot avec la 3.4.0, cela fonctionne à nouveau.

Le problème est probablement lié au fait que dans mes logs NGINX :

Cela semble lié au SSL, mais ce problème ne ressemble pas au mien : How to solve error duplicate extension "wasm"

Voyez-vous d’où vient le problème ?

Habituellement, lorsqu’un problème survient lors d’une reconstruction, la cause est affichée. Essayez de reconstruire à nouveau et faites défiler vers le haut une fois la reconstruction terminée pour rechercher le message d’erreur.

Si vous n’obtenez aucun résultat, vous pouvez recommencer avec un nouveau VPS, restaurer votre sauvegarde et réessayer.

Vous pouvez publier sur Marketplace pour demander de l’aide rémunérée, si c’est urgent. Ou envisagez l’ hébergement Discourse officiel ! Après avoir lancé votre essai, vous pourrez restaurer votre sauvegarde et remettre votre communauté en ligne en un rien de temps.