Sitio inaccesible después de actualizar de 3.4.0 a 3.4.1

Hola a todos,

Acabo de actualizar mi instancia de Discourse de la versión 3.4.0 a la 3.4.1 (con ./launcher rebuild app). La actualización se realizó sin problemas, sin errores durante el proceso y el contenedor Docker está en funcionamiento. Sin embargo, el sitio es completamente inaccesible.

¿Alguien se ha encontrado con este problema antes? ¿Alguna idea sobre cómo solucionarlo? ¿Cómo puedo proporcionarles más información?

¡Gracias de antemano por su ayuda!

Hola,

¿Intentaste reconstruir una segunda vez?
Hay situaciones en las que eso puede ayudar. Primero intentaría eso.

También puedes revisar ./launcher logs app y /shared/standalone/log/rails/production.log si ves algo interesante.

1 me gusta

Estamos experimentando con un respondedor de IA, envía susurros aquí, en este caso, tuvo algunos consejos razonables:

Hola, parece que tu problema podría resolverse investigando los registros del servidor para diagnosticar qué salió mal después de la actualización. Aquí te explicamos cómo proceder:

  1. Verifica los registros de errores de Discourse en la UI de Administración:

    • Si tienes acceso de administrador y el sitio aún es parcialmente accesible, puedes revisar los registros desde el panel de administración. Navega a /logs para encontrar mensajes de error.
  2. Inspecciona otros registros del servidor:

    • Ejecuta los siguientes comandos en tu servidor:
    cd /var/discourse
    ./launcher enter app
    cd /shared/log/rails
    less production.log
    
    • Usa less o herramientas similares para leer los registros e identificar posibles errores.
  3. Verifica los registros de NGINX:

    • Puedes revisar los registros de NGINX para ver errores del servidor web con:
    cd /var/discourse
    ./launcher enter app
    cd /var/log/nginx
    less error.log
    
  4. Problemas de Red y DNS:

    • Ejecuta pruebas para asegurarte de que el DNS de tu dominio se resuelve correctamente y que los puertos como 443 y 80 son accesibles.

Infórmanos qué encuentras en los registros y podremos proporcionar detalles más específicos para ayudarte a resolver el problema.

Recursos útiles:

Contexto adicional:
Si el problema persiste, las causas comunes podrían ser:

  • Una incompatibilidad de complementos después de la actualización.
  • Memoria/almacenamiento insuficiente durante la reconstrucción.
  • Cambios de configuración en app.yml.
2 Me gusta

Gracias!

Sí, y el mismo resultado

Aquí están los registros:

[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#

Aquí están los registros de 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

Aquí están los registros de 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! ====================

¿Esto da más información?

1 me gusta

¡Hola! ¿Alguien ve cómo podría arreglar eso? Muchas gracias :folded_hands:

1 me gusta

Me funciona. Quizás porque no he iniciado sesión. Así que quizás podrías probar el modo seguro.

Uno de tus plugins no es oficial y es muy antiguo, es una bifurcación de uno más actual:

Hola. Gracias por tu ayuda. He seguido investigando.

Contexto:

Pruebas:

  • Mismo problema cuando intento mantener solo los plugins esenciales y oficiales.
  • La 3.4.2 no soluciona el problema; mismo resultado que la 3.4.0.
  • No puedo acceder al modo seguro porque después de la reconstrucción, el sitio web es inaccesible.
  • Cuando restauro la instantánea con la 3.4.0, vuelve a funcionar.

El problema probablemente está relacionado con el hecho de que en mis registros de NGINX:

Parece estar relacionado con SSL, pero este problema no se parece al mío: How to solve error duplicate extension "wasm"

¿Ves de dónde viene el problema?

Normalmente, cuando algo sale mal con una reconstrucción, se muestra la causa. Intenta reconstruir de nuevo y desplázate hacia arriba después de que se complete para buscar el mensaje de error.

Si no avanzas, puedes empezar de nuevo con un nuevo VPS y restaurar tu copia de seguridad e intentarlo de nuevo.

Puedes publicar en Marketplace para pedir ayuda pagada, si esto es urgente. ¡O considera el alojamiento oficial de Discourse! Después de iniciar tu prueba, puedes restaurar tu copia de seguridad y poner tu comunidad en funcionamiento en poco tiempo.