Caída completa del foro (prueba de presión)

Mi foro se bloqueó mientras actualizaba el software y ahora ha desaparecido por completo. Recibo los siguientes mensajes de error…

« Oops
El software que impulsa este foro de discusión encontró un problema inesperado. Lamentamos las molestias.

La información detallada sobre el error se registró y se generó una notificación automática. Le echaremos un vistazo.

No se requiere ninguna acción adicional. Sin embargo, si la condición de error persiste, puede proporcionar detalles adicionales, incluidos los pasos para reproducir el error, publicando un tema de discusión en la categoría de comentarios del sitio. »

El foro que administro se encuentra en > https://forum.testpressing.org/

Cualquier ayuda sería apreciada.

También acabo de actualizar y mi contenedor no se está compilando y luego se está bloqueando. Es muy desafortunado.

No lo reinicies reconstruyendo cuando se quede atascado, ya que lo bloqueó todo cuando lo hice…

el mismo comportamiento aquí. Estaba viendo errores con los workers, lo reinicié… se bloqueó… intenté reconstruir. Ahora se bloquea perpetuamente

/var/discourse# ./launcher rebuild app
Se detectó la arquitectura x86_64.
ADVERTENCIA: el archivo containers/app.yml es legible por todos. Puedes proteger este archivo ejecutando: chmod o-rwx containers/app.yml
Asegurando que launcher esté actualizado
Obteniendo origen
Launcher está actualizado
2.0.20240825-0027: Extrayendo de discourse/base
Digest: sha256:6de68cb49198b5281f79ed9401b3fe818c854d220dcf0238549fe2f2adb19146
Estado: La imagen está actualizada para discourse/base:2.0.20240825-0027
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2024-08-27T21:43:42.091270 #1]  INFO -- : Leyendo desde stdin
I, [2024-08-27T21:43:42.110405 #1]  INFO -- : Archivo > /etc/service/postgres/run  chmod: +x  chown:
I, [2024-08-27T21:43:42.117678 #1]  INFO -- : Archivo > /etc/service/postgres/log/run  chmod: +x  chown:
I, [2024-08-27T21:43:42.125472 #1]  INFO -- : Archivo > /etc/runit/3.d/99-postgres  chmod: +x  chown:
I, [2024-08-27T21:43:42.132700 #1]  INFO -- : Archivo > /root/install_postgres  chmod: +x  chown:
I, [2024-08-27T21:43:42.139622 #1]  INFO -- : Archivo > /root/upgrade_postgres  chmod: +x  chown:
I, [2024-08-27T21:43:42.140454 #1]  INFO -- : Reemplazando data_directory = '/var/lib/postgresql/13/main' con data_directory = '/shared/postgres_data' en /etc/postgresql/13/main/postgresql.conf
I, [2024-08-27T21:43:42.141762 #1]  INFO -- : Reemplazando (?-mix:#?listen_addresses *=.*) con listen_addresses = '*' en /etc/postgresql/13/main/postgresql.conf
I, [2024-08-27T21:43:42.142675 #1]  INFO -- : Reemplazando (?-mix:#?synchronous_commit *=.*) con synchronous_commit = $db_synchronous_commit en /etc/postgresql/13/main/postgresql.conf
I, [2024-08-27T21:43:42.143534 #1]  INFO -- : Reemplazando (?-mix:#?shared_buffers *=.*) con shared_buffers = $db_shared_buffers en /etc/postgresql/13/main/postgresql.conf
I, [2024-08-27T21:43:42.144382 #1]  INFO -- : Reemplazando (?-mix:#?work_mem *=.*) con work_mem = $db_work_mem en /etc/postgresql/13/main/postgresql.conf
I, [2024-08-27T21:43:42.144912 #1]  INFO -- : Reemplazando (?-mix:#?default_text_search_config *=.*) con default_text_search_config = '$db_default_text_search_config' en /etc/postgresql/13/main/postgresql.conf
I, [2024-08-27T21:43:42.145541 #1]  INFO -- : Reemplazando (?-mix:#?checkpoint_segments *=.*) con checkpoint_segments = $db_checkpoint_segments en /etc/postgresql/13/main/postgresql.conf
I, [2024-08-27T21:43:42.146355 #1]  INFO -- : Reemplazando (?-mix:#?logging_collector *=.*) con logging_collector = $db_logging_collector en /etc/postgresql/13/main/postgresql.conf
I, [2024-08-27T21:43:42.146979 #1]  INFO -- : Reemplazando (?-mix:#?log_min_duration_statement *=.*) con log_min_duration_statement = $db_log_min_duration_statement en /etc/postgresql/13/main/postgresql.conf
I, [2024-08-27T21:43:42.147851 #1]  INFO -- : Reemplazando (?-mix:^#local +replication +postgres +peer$) con local replication postgres  peer en /etc/postgresql/13/main/pg_hba.conf
I, [2024-08-27T21:43:42.148557 #1]  INFO -- : Reemplazando (?-mix:^host.*all.*all.*127.*$) con host all all 0.0.0.0/0 md5 en /etc/postgresql/13/main/pg_hba.conf
I, [2024-08-27T21:43:42.149423 #1]  INFO -- : Reemplazando (?-mix:^host.*all.*all.*::1\\/128.*$) con host all all ::/0 md5 en /etc/postgresql/13/main/pg_hba.conf
I, [2024-08-27T21:43:42.149931 #1]  INFO -- : > if [ -f /root/install_postgres ]; then
  /root/install_postgres && rm -f /root/install_postgres
elif [ -e /shared/postgres_run/.s.PGSQL.5432 ]; then
  socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
fi

2024/08/27 21:43:42 socat[28] E connect(, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): Connection refused
I, [2024-08-27T21:43:42.217004 #1]  INFO -- : Generando locales (esto puede tardar un poco).
Generación completa.

I, [2024-08-27T21:43:42.217327 #1]  INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main
I, [2024-08-27T21:43:42.220344 #1]  INFO -- : Terminando procesos asíncronos
2024-08-27 21:43:42.300 UTC [30] LOG:  iniciando PostgreSQL 13.16 (Debian 13.16-1.pgdg120+1) en x86_64-pc-linux-gnu, compilado por gcc (Debian 12.2.0-14) 12.2.0, 64-bit
2024-08-27 21:43:42.300 UTC [30] LOG:  escuchando en la dirección IPv4 "0.0.0.0", puerto 5432
2024-08-27 21:43:42.300 UTC [30] LOG:  escuchando en la dirección IPv6 "::", puerto 5432
2024-08-27 21:43:42.303 UTC [30] LOG:  escuchando en el socket Unix "/var/run/postgresql/.s.PGSQL.5432"
2024-08-27 21:43:42.310 UTC [31] LOG:  el sistema de bases de datos fue interrumpido; último conocido a las 2024-08-27 21:41:14 UTC
2024-08-27 21:43:42.503 UTC [31] LOG:  el sistema de bases de datos no se cerró correctamente; recuperación automática en curso
2024-08-27 21:43:42.507 UTC [31] LOG:  redo comienza en 38C/55C02EA0
2024-08-27 21:43:42.507 UTC [31] LOG:  longitud de registro inválida en 38C/55C02ED8: se esperaban 24, se obtuvieron 0
2024-08-27 21:43:42.507 UTC [31] LOG:  redo finalizado en 38C/55C02EA0
2024-08-27 21:43:42.540 UTC [30] LOG:  el sistema de bases de datos está listo para aceptar conexiones

Simplemente se queda colgado indefinidamente… nunca asigna puertos al contenedor ni inicia la aplicación rails ni nada, por lo que puedo ver.

Si ejecutas

./launcher start app

¿volverá a estar en línea?

no…hay un contenedor zombi que ./launcher rebuild app crea, lo que da la salida anterior. Así es como se ve el contenedor. Comienza a construirse a partir de la imagen base de discourse, pero luego se cuelga, como se mencionó anteriormente. No se registra como la aplicación discourse.

/var/discourse# docker ps -a
CONTAINER ID        IMAGE                              COMMAND                  CREATED             STATUS              PORTS               NAMES
02ae320b72a0        discourse/base:2.0.20240825-0027   "/bin/bash -c '/usr/…"   7 minutes ago       Up 7 minutes                            sleepy_driscoll

Cuando ejecuto ./launcher start app, da un error porque intenta iniciar una nueva aplicación y PSQL se está ejecutando en 5432 en el contenedor zombi. Si elimino el contenedor zombi (y/o las imágenes), crea un nuevo contenedor y se cuelga con los registros de la misma manera que en mi publicación anterior.

muy estresante y desafortunado. No sé cómo llegamos a este punto. He deshabilitado todos los complementos en mi app.yaml y he intentado reconstruir.

Creo que estos registros son los más relevantes para la situación de mi foro

2024-08-27 21:43:42.300 UTC [30] LOG:  starting PostgreSQL 13.16 (Debian 13.16-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
2024-08-27 21:43:42.300 UTC [30] LOG:  listening on IPv4 address \"0.0.0.0\", port 5432
2024-08-27 21:43:42.300 UTC [30] LOG:  listening on IPv6 address \"::\", port 5432
2024-08-27 21:43:42.303 UTC [30] LOG:  listening on Unix socket \"/var/run/postgresql/.s.PGSQL.5432\"
2024-08-27 21:43:42.310 UTC [31] LOG:  database system was interrupted; last known up at 2024-08-27 21:41:14 UTC
2024-08-27 21:43:42.503 UTC [31] LOG:  database system was not properly shut down; automatic recovery in progress
2024-08-27 21:43:42.507 UTC [31] LOG:  redo starts at 38C/55C02EA0
2024-08-27 21:43:42.507 UTC [31] LOG:  invalid record length at 38C/55C02ED8: wanted 24, got 0
2024-08-27 21:43:42.507 UTC [31] LOG:  redo done at 38C/55C02EA0
2024-08-27 21:43:42.540 UTC [30] LOG:  database system is ready to accept connections

simplemente se queda colgado aquí para siempre… nunca compila los activos, nunca inicia la aplicación Rails, nunca inicia Redis, etc.

1 me gusta

oh okay…así que esto es algo que le pasa al menos a un puñado de personas :frowning:

Más información:

/var/discourse# ./launcher start app
Se detectó la arquitectura x86_64.
ADVERTENCIA: El archivo containers/app.yml es legible por todos. Puedes proteger este archivo ejecutando: chmod o-rwx containers/app.yml

+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=8 -e UNICORN_SIDEKIQS=1 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET=/var/run/postgresql -e DISCOURSE_DB_HOST= -e DISCOURSE_DB_PORT= -e LETSENCRYPT_DIR=/shared/letsencrypt -e DISCOURSE_FORCE_HTTPS=true -e DISCOURSE_HOSTNAME=redacted.com -e DISCOURSE_DEVELOPER_EMAILS=redacted -e DISCOURSE_SMTP_ADDRESS=smtp.redacted.com -e DISCOURSE_SMTP_PORT=587 -e DISCOURSE_SMTP_USER_NAME=postmaster@redacted -e DISCOURSE_SMTP_PASSWORD=redacted -e DISCOURSE_SMTP_ENABLE_START_TLS=true -e LETSENCRYPT_ACCOUNT_EMAIL=redacted -h discourse-beta-ubuntu-app -e DOCKER_HOST_IP=172.17.0.1 --name app -t -p 80:80 -p 443:443 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:52:ee:ee:62:b2 local_discourse/app /sbin/boot
Unable to find image 'local_discourse/app:latest' locally
/usr/bin/docker: Error response from daemon: pull access denied for local_discourse/app, repository does not exist or may require 'docker login'.
See '/usr/bin/docker run --help'.

Cuando intento iniciar la aplicación :point_up_2:… se queja de que la imagen local_discourse/app no está ahí. Lo cual es correcto:

/var/discourse# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
discourse/base      2.0.20240825-0027   9dc96b6115cb        2 days ago          3.38GB

pero intentar descargar y construir la imagen no funciona, debido a que la base de datos se queda colgada.

2 Me gusta

Ver

para la solución.