Sitio fuera de línea después de la reconstrucción (4 de febrero de 2025)

Vi este mensaje después de una reconstrucción reciente. Luego ejecuté ./launcher rebuild app, pero después de eso, mi instancia se volvió inaccesible. Es una instalación estándar: ¿cómo puedo determinar qué sucedió?

errores cuando ejecuto ./launcher logs app

cd /var/discourse
./launcher logs app
x86_64 arch detected.
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 05:38:16 PM UTC 2025] Domains not changed.
[Tue Feb  4 05:38:16 PM UTC 2025] Skip, Next renewal time is: 2025-03-02T20:15:28Z
[Tue Feb  4 05:38:16 PM UTC 2025] Add '--force' to force to renew.
[Tue Feb  4 05:38:17 PM UTC 2025] Installing key to: /shared/ssl/mydomain.com.key
[Tue Feb  4 05:38:17 PM UTC 2025] Installing full chain to: /shared/ssl/mydomain.com.cer
[Tue Feb  4 05:38:17 PM UTC 2025] Run reload cmd: sv reload nginx
warning: nginx: unable to open supervise/ok: file does not exist
[Tue Feb  4 05:38:17 PM UTC 2025] Reload error for :
[Tue Feb  4 05:38:17 PM UTC 2025] Domains not changed.
[Tue Feb  4 05:38:17 PM UTC 2025] Skip, Next renewal time is: 2025-03-02T20:15:33Z
[Tue Feb  4 05:38:17 PM UTC 2025] Add '--force' to force to renew.
[Tue Feb  4 05:38:18 PM UTC 2025] Installing key to: /shared/ssl/mydomain.com_ecc.key
[Tue Feb  4 05:38:18 PM UTC 2025] Installing full chain to: /shared/ssl/mydomain.com_ecc.cer
[Tue Feb  4 05:38:18 PM UTC 2025] Run reload cmd: sv reload nginx
warning: nginx: unable to open supervise/ok: file does not exist
[Tue Feb  4 05:38:18 PM UTC 2025] Reload error for :
Started runsvdir, PID is 567
ok: run: redis: (pid 577) 0s
ok: run: postgres: (pid 581) 0s
nginx: [warn] duplicate extension "wasm", content type: "application/wasm", previous content type: "application/wasm" in /etc/nginx/conf.d/discourse.conf:4
supervisor pid: 575 unicorn pid: 607
Shutting Down
run-parts: executing /etc/runit/3.d/01-nginx
ok: down: nginx: 1s, normally up
run-parts: executing /etc/runit/3.d/02-unicorn
(575) exiting
ok: down: unicorn: 0s, normally up
run-parts: executing /etc/runit/3.d/10-redis
ok: down: redis: 1s, normally up
run-parts: executing /etc/runit/3.d/99-postgres
ok: down: postgres: 0s, normally up
ok: down: nginx: 5s, normally up
ok: down: postgres: 1s, normally up
ok: down: redis: 3s, normally up
ok: down: cron: 0s, normally up
ok: down: unicorn: 4s, normally up
ok: down: rsyslog: 0s, normally up
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 05:58:32 PM UTC 2025] Domains not changed.
[Tue Feb  4 05:58:32 PM UTC 2025] Skip, Next renewal time is: 2025-03-02T20:15:28Z
[Tue Feb  4 05:58:32 PM UTC 2025] Add '--force' to force to renew.
[Tue Feb  4 05:58:32 PM UTC 2025] Installing key to: /shared/ssl/mydomain.com.key
[Tue Feb  4 05:58:32 PM UTC 2025] Installing full chain to: /shared/ssl/mydomain.com.cer
[Tue Feb  4 05:58:32 PM UTC 2025] Run reload cmd: sv reload nginx
fail: nginx: runsv not running
[Tue Feb  4 05:58:32 PM UTC 2025] Reload error for :
[Tue Feb  4 05:58:32 PM UTC 2025] Domains not changed.
[Tue Feb  4 05:58:32 PM UTC 2025] Skip, Next renewal time is: 2025-03-02T20:15:33Z
[Tue Feb  4 05:58:32 PM UTC 2025] Add '--force' to force to renew.
[Tue Feb  4 05:58:32 PM UTC 2025] Installing key to: /shared/ssl/mydomain.com_ecc.key
[Tue Feb  4 05:58:32 PM UTC 2025] Installing full chain to: /shared/ssl/mydomain.com_ecc.cer
[Tue Feb  4 05:58:32 PM UTC 2025] Run reload cmd: sv reload nginx
fail: nginx: runsv not running
[Tue Feb  4 05:58:32 PM UTC 2025] Reload error for :
Started runsvdir, PID is 561
ok: run: redis: (pid 575) 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 580) 1s
supervisor pid: 570 unicorn pid: 601
Shutting Down
run-parts: executing /etc/runit/3.d/01-nginx
ok: down: nginx: 0s, normally up
run-parts: executing /etc/runit/3.d/02-unicorn
(570) exiting
ok: down: unicorn: 1s, normally up
run-parts: executing /etc/runit/3.d/10-redis
ok: down: redis: 0s, normally up
run-parts: executing /etc/runit/3.d/99-postgres
ok: down: postgres: 0s, normally up
ok: down: nginx: 3s, normally up
ok: down: postgres: 1s, normally up
ok: down: redis: 1s, normally up
ok: down: cron: 0s, normally up
ok: down: unicorn: 3s, normally up
ok: down: rsyslog: 0s, normally up
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 06:01:07 PM UTC 2025] Domains not changed.
[Tue Feb  4 06:01:07 PM UTC 2025] Skip, Next renewal time is: 2025-03-02T20:15:28Z
[Tue Feb  4 06:01:07 PM UTC 2025] Add '--force' to force to renew.
[Tue Feb  4 06:01:07 PM UTC 2025] Installing key to: /shared/ssl/mydomain.com.key
[Tue Feb  4 06:01:07 PM UTC 2025] Installing full chain to: /shared/ssl/mydomain.com.cer
[Tue Feb  4 06:01:07 PM UTC 2025] Run reload cmd: sv reload nginx
fail: nginx: runsv not running
[Tue Feb  4 06:01:07 PM UTC 2025] Reload error for :
[Tue Feb  4 06:01:07 PM UTC 2025] Domains not changed.
[Tue Feb  4 06:01:07 PM UTC 2025] Skip, Next renewal time is: 2025-03-02T20:15:33Z
[Tue Feb  4 06:01:07 PM UTC 2025] Add '--force' to force to renew.
[Tue Feb  4 06:01:07 PM UTC 2025] Installing key to: /shared/ssl/mydomain.com_ecc.key
[Tue Feb  4 06:01:07 PM UTC 2025] Installing full chain to: /shared/ssl/mydomain.com_ecc.cer
[Tue Feb  4 06:01:07 PM UTC 2025] Run reload cmd: sv reload nginx
fail: nginx: runsv not running
[Tue Feb  4 06:01:07 PM UTC 2025] Reload error for :
Started runsvdir, PID is 561
ok: run: redis: (pid 575) 0s
ok: run: postgres: (pid 576) 0s
nginx: [warn] duplicate extension "wasm", content type: "application/wasm", previous content type: "application/wasm" in /etc/nginx/conf.d/discourse.conf:4
supervisor pid: 570 unicorn pid: 601
(570) exiting
nginx: [warn] duplicate extension "wasm", content type: "application/wasm", previous content type: "application/wasm" in /etc/nginx/conf.d/discourse.conf:4
3 Me gusta

Todo iba perfectamente. Vi lo siguiente y reconstruí. La construcción se completó sin errores, pero mi sitio no se abre.

-------------------------------------------------------------------------------------
ACTUALIZACIÓN DE POSTGRES COMPLETA

La base de datos antigua 13 se almacena en /shared/postgres_data_old

Para completar la actualización, vuelve a reconstruir usando:

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

Cuando ejecuto esto:
tail /var/discourse/shared/standalone/log/var-log/postgres/current
Salida

2025-02-04 18:11:50.943 UTC [573] LOG:  apagando
2025-02-04 18:11:50.945 UTC [573] LOG:  inicio del checkoint: shutdown inmediato
2025-02-04 18:11:50.970 UTC [573] LOG:  checkoint completo: escribió 139 buffers (0.0%); 0 archivo(s) WAL añadidos, 0 eliminados, 0 reciclados; write=0.017 s, sync=0.005 s, total=0.027 s; archivos sincronizados=27, más largo=0.002 s, promedio=0.001 s; distancia=410 kB, estimación=410 kB
2025-02-04 18:11:51.034 UTC [547] LOG:  el sistema de base de datos está apagado
2025-02-04 18:15:04.302 UTC [548] LOG:  iniciando PostgreSQL 15.10 (Debian 15.10-1.pgdg120+1) en x86_64-pc-linux-gnu, compilado por gcc (Debian 12.2.0-14) 12.2.0, 64-bit
2025-02-04 18:15:04.303 UTC [548] LOG:  escuchando en la dirección IPv4 "0.0.0.0", puerto 5432
2025-02-04 18:15:04.303 UTC [548] LOG:  escuchando en la dirección IPv6 "::", puerto 5432
2025-02-04 18:15:04.305 UTC [548] LOG:  escuchando en el socket Unix "/var/run/postgresql/.s.PGSQL.5432"
2025-02-04 18:15:04.313 UTC [575] LOG:  el sistema de base de datos fue apagado a las 2025-02-04 18:14:37 UTC
2025-02-04 18:15:04.318 UTC [548] LOG:  el sistema de base de datos está listo para aceptar conexiones

Además, ./launcher logs app produce la siguiente salida:

x86_64 arquitectura detectada.
run-parts: ejecutando /etc/runit/1.d/00-ensure-links
run-parts: ejecutando /etc/runit/1.d/00-fix-var-logs
run-parts: ejecutando /etc/runit/1.d/01-cleanup-web-pids
run-parts: ejecutando /etc/runit/1.d/anacron
run-parts: ejecutando /etc/runit/1.d/cleanup-pids
Limpiando archivos PID antiguos
run-parts: ejecutando /etc/runit/1.d/copy-env
run-parts: ejecutando /etc/runit/1.d/letsencrypt
[Tue Feb  4 06:15:03 PM UTC 2025] Los dominios no cambiaron.
[Tue Feb  4 06:15:03 PM UTC 2025] Salto, la próxima renovación será: 2025-02-09T00:30:10Z
[Tue Feb  4 06:15:03 PM UTC 2025] Añadir '--force' para forzar la renovación.
[Tue Feb  4 06:15:03 PM UTC 2025] Instalando clave en: /shared/ssl/forum.myforum.com.key
[Tue Feb  4 06:15:03 PM UTC 2025] Instalando cadena completa en: /shared/ssl/forum.myforum.com.cer
[Tue Feb  4 06:15:03 PM UTC 2025] Ejecutando comando de recarga: sv reload nginx
advertencia: nginx: no se puede abrir supervise/ok: el archivo no existe
[Tue Feb  4 06:15:03 PM UTC 2025] Error al recargar :
[Tue Feb  4 06:15:03 PM UTC 2025] Error al recargar nginx.
[Tue Feb  4 06:15:03 PM UTC 2025] Los dominios no cambiaron.
[Tue Feb  4 06:15:03 PM UTC 2025] Salto, la próxima renovación será: 2025-02-09T00:30:15Z
[Tue Feb  4 06:15:03 PM UTC 2025] Añadir '--force' para forzar la renovación.
[Tue Feb  4 06:15:04 PM UTC 2025] Instalando clave en: /shared/ssl/forum.myforum.com_ecc.key
[Tue Feb  4 06:15:04 PM UTC 2025] Instalando cadena completa en: /shared/ssl/forum.myforum.com_ecc.cer
[Tue Feb  4 06:15:04 PM UTC 2025] Ejecutando comando de recarga: sv reload nginx
advertencia: nginx: no se puede abrir supervise/ok: el archivo no existe
[Tue Feb  4 06:15:04 PM UTC 2025] Error al recargar :
Inicio runsvdir, PID es 537
ok: run: redis: (pid 552) 0s
ok: run: postgres: (pid 548) 0s
nginx: [advertencia] extensión duplicada "wasm", tipo de contenido: "application/wasm", en /etc/nginx/conf.d/discourse.conf:4
supervisor pid: 546 unicorn pid: 579
2 Me gusta

Esto también está sucediendo en mis dos sitios autoalojados, después de actualizar desde la línea de comandos hoy. Estas son instalaciones muy básicas sin personalización ni plugins no oficiales, se mantienen actualizadas regularmente y normalmente se actualizan sin dificultad.

Actualmente estoy probando las sugerencias de @mwaniki y veré cómo funciona, e informaré aquí.

2 Me gusta

Realicé otra reconstrucción de la aplicación y la actualización se completó con éxito, pero aunque no se ven errores, no se puede acceder al sitio. ¿Alguna idea?

./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 Me gusta

Creo que este “sitio no responde en absoluto” no está relacionado con la actualización de postgres. Lo estoy investigando ahora mismo :ojos:

5 Me gusta

Espero ansiosamente a que se resuelva este problema. Estoy recibiendo cientos de correos electrónicos de mis usuarios preguntando por qué no puedo acceder al foro :frowning:

4 Me gusta

¡Disculpen las molestias a todos! La corrección ya está activa, así que ejecutar otro ./launcher rebuild app debería volver a poner todo en línea.

Por favor, háganos saber si todavía están viendo algún problema después de eso.

13 Me gusta

en el trabajo :slight_smile:

4 Me gusta

El foro está funcionando de nuevo. Gracias por la rápida solución. Por eso amamos Discourse :heart:

4 Me gusta

¡Gracias por arreglar esto! También pasé las últimas 2 horas tratando de averiguar qué salió mal con mi reconstrucción. ¡Todo está bien ahora!

Una meta-observación: al investigar el problema en este foro, la clasificación predeterminada de “Relevancia” de los resultados de búsqueda del foro jugó en mi contra. Los registros de errores en los que busqué eran exactamente los mismos que aquí, pero este tema reciente solo apareció muchas páginas más abajo en la lista de resultados (probablemente debido a su reciente publicación). Por lo tanto, no encontré este tema hasta que abrí al azar la página principal de Meta, donde era tendencia. Supongo que esto es una nota para mí/otros para revisar también la página principal o los resultados más recientes al intentar investigar un problema futuro de reconstrucción.

6 Me gusta

¡Es un gran comentario! Ten en cuenta que inicialmente esta conversación estaba ocurriendo en PostgreSQL 15 update hasta que David se dio cuenta de que no estaba relacionada con la actualización de PostgreSQL y trasladó las publicaciones relevantes a un nuevo tema. Eso sucedió hace aproximadamente una hora, ¡así que no habrías podido encontrarlo hasta después de eso!

Solucionar problemas de actualizaciones fallidas es notoriamente difícil, ¡y más aún porque actualizar Discourse suele ser tan fluido que la mayoría de nosotros, los autoalojadores, no tenemos que aprender cómo funciona Discourse internamente y aprender los pasos para solucionar problemas!

¡Gracias @david por investigar esto y encontrar la solución tan rápido!

3 Me gusta

Actualicé Docker desde la aplicación móvil y luego apareció el temido mensaje “actualizar a través de la consola”, que normalmente presagia desafíos.

He seguido todos los pasos de actualización manual y la reconstrucción de la aplicación del lanzador falla cada vez.

Puedo recuperarme iniciando la aplicación del lanzador, por lo que el sitio funciona.

No está claro si esto está relacionado con los errores de postgres, o dónde podría estar teniendo problemas.

2 Me gusta

Eso sugiere que no es el mismo problema que se ha discutido en este tema.
Para este problema, la reconstrucción se estaba realizando sin errores, pero el sitio no se cargaba. ./launcher start no ayudó.

Así que te sugiero que abras un nuevo tema de Support con detalles sobre el error que estás viendo.

2 Me gusta

Mi sitio ha vuelto a estar en línea después de la reconstrucción. ¡Gracias! :+1:

4 Me gusta

Al final, fue un problema de comprensión lectora por mi parte. Puedo confirmar que el problema era que la base de datos de Postgres no se estaba cerrando correctamente. Una vez que seguí las instrucciones adecuadas, todo volvió a funcionar. Gracias a todos, es agradable tener un lugar donde, cuando las cosas van mal y entro en pánico un poco, hay cabezas más frías aquí para ayudar.

¡¡¡Gracias!!!

7 Me gusta

No me funciona

2 Me gusta

Entonces debe ser un problema diferente. Por favor, abre un nuevo tema de Support con detalles y haremos todo lo posible para ayudarte.

Para evitar confusiones, voy a cerrar este tema, ya que este problema específico está resuelto.