PostgreSQL atascado durante la reconstrucción

Tengo el mismo problema… DO Droplet en Ubuntu 20.04. Intenté actualizar Docker desde Discourse primero, pero siempre me daba un código de error 137. Así que luego intenté reconstruir Discourse desde la línea de comandos y se quedó colgado en The database is ready to accept connections. Ctrl+C no hacía nada, así que cerré SSH y abrí uno nuevo y volví a iniciar Discourse y todavía funcionaba pero no actualizado. Reinicié el droplet y volví a intentar actualizar Docker desde Discourse y esta vez funcionó. Así que intenté reconstruir Discourse de nuevo, pero todavía se quedó colgado en el mismo lugar. Cerré SSH de nuevo y abrí y volví a iniciar Discourse, ¡pero ahora me sale la pantalla de Oops! Así que ahora mi Discourse está caído y la única forma en que he podido recuperarme de la pantalla de Oops anteriormente es reconstruyendo la aplicación, ¡lo cual no puedo hacer!

Así que ahora estoy perdido, ya que mi experiencia con Discourse y Droplet es muy limitada y no estoy seguro de qué puedo hacer ahora. docker_manager es el único plugin utilizado en mi app.yml, así que solo puedo suponer que el error se debe a que Docker es una versión más nueva y no se lleva bien con mi versión de Discourse. No lo sé. Última vez que actualicé Discourse fue en enero, así que no está tan desactualizado…

Así que mi sitio está caído hasta que este problema se resuelva… ¿A menos que inicie un nuevo Droplet y reconfigure todo de nuevo y restaure la copia de seguridad de Discourse que hice? ¿Es esa mi única opción en este momento? :tired_face:

El error 137 se debe a falta de memoria. Intentaría añadir más swap. Si solo tienes 1 GB de RAM, podría redimensionarla a 2 GB y quizás también tener 3 o 4 GB de swap.

Podrías intentar un

./launcher start app

Pero sospecho que la base de datos ha migrado demasiado para el contenedor antiguo.

Si estás atascado y quieres soporte de pago, consulta Contact Us - Literate Computing

Editar: Pero esto es lo que haría:

Hola, el mismo error aquí. La solución provisional por ahora es forzar el parámetro de versión en app.yml a v3.3.0. Arch AMD64, Ubuntu 18.04. Es extraño que una versión menor haya fallado, la actualización a v3.3.0 pasó sin problemas la semana pasada :neutral_face:

1 me gusta

Para cualquiera que se encuentre con este problema y se sienta cómodo dándome acceso a su servidor, por favor envíeme un mensaje privado para que pueda depurar el problema en un servidor que tenga el problema. He intentado de varias maneras y no puedo reproducir este problema, lo que dificulta la implementación de una solución.

5 Me gusta

No veo una forma en mi perfil de enviarte un mensaje privado…

Necesitas tener nivel de confianza 1 para enviar mensajes

Mirando las estadísticas de tu perfil, ya estás bastante cerca.

2 Me gusta

Para cualquiera que esté atascado con este problema y Discourse caído, he descubierto que al menos puede poner en marcha la versión antigua del foro reiniciando la VM y luego ejecutando ./launcher start app. Este comando no funcionará después de intentar una reconstrucción sin reiniciar su instancia / VM.

Podré actualizar la versión de Ubuntu en nuestra VM afectada el lunes, así que mantendré a todos informados sobre el resultado.

1 me gusta

Ctrl+c no funciona cuando está atascado, tengo que reiniciar el sistema.

Este comando tampoco hace nada.

**/var/discourse**# ./launcher start app

Se detectó la arquitectura x86_64.

ADVERTENCIA: El archivo containers/app.yml es legible por todos. Puede 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=2 -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 LC_ALL=en_US.UTF-8 -e LANGUAGE=en_US.UTF-8 -e DISCOURSE_HOSTNAME=techoforum.com -e DISCOURSE_DEVELOPER_EMAILS=techoforumd@gmail.com -e DISCOURSE_SMTP_ADDRESS=smtp.sendgrid.net -e DISCOURSE_SMTP_PORT=587 -e DISCOURSE_SMTP_USER_NAME=apikey -e DISCOURSE_SMTP_PASSWORD=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 -e DISCOURSE_SMTP_DOMAIN=gmail.com -e DISCOURSE_NOTIFICATION_EMAIL=techoforumd@gmail.com -e LETSENCRYPT_ACCOUNT_EMAIL=me@example.com -h discourseonubuntu2004-s-1vcpu-1gb-sfo3-01-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:f8:99:7d:c3:d6 local_discourse/app /sbin/boot

No se puede encontrar la imagen 'local_discourse/app:latest' localmente

docker: Error de respuesta del demonio: error de acceso denegado al extraer 'local_discourse/app', el repositorio no existe o puede requerir 'docker login': denegado: se denegó el acceso al recurso solicitado.

Consulte 'docker run --help'.

Tengo otro foro en otro droplet y ese no presenta ningún problema al actualizar. Es extraño por qué con la misma configuración de servidor un droplet tiene problemas mientras que otro no.

Eso suena a un problema de RAM. ¿Cuánta RAM y swap tienes? Añadiría uno o dos GB de espacio SWAP (y quizás añadir RAM si solo tienes 1GB)

¿Cuánta RAM y swap tienes en esos sistemas? ¿Cuál es la salida de

free -h

Y la RAM explicaría por qué @tgxworld no ha podido replicarlo.

Estoy bastante seguro de que el problema es la RAM/swap.

Por cierto, para cualquiera que se encuentre con este problema, puede solucionarlo temporalmente agregando base_image: discourse/base:2.0.20240708-0023 en la parte superior del archivo containers/app.yml.

5 Me gusta

No estoy seguro de que sea un problema de RAM en mi caso, ya que la VM afectada tiene 125 GiB asignados y 78 GB disponibles.

              total        used        free      shared  buff/cache   available
Mem:           125G         14G        940M         31G        110G         78G
Swap:            0B          0B          0B

El servidor de desarrollo con el mismo SO que se actualizó correctamente sin este problema solo tiene 16 GiB de RAM.

1 me gusta

Maldición. Iba a explicarlo todo. :person_shrugging:

1 me gusta

¿Podría ser un problema del tamaño de la base de datos?

La base de datos en nuestro servidor de producción es bastante grande, pero la de desarrollo es muy pequeña. Esa es la única diferencia real entre las máquinas virtuales que se han actualizado correctamente y la afectada (en mi caso).

Quizás, ¿has cambiado la configuración de memoria para la base de datos?

¿Qué tamaño tiene la base de datos?

1 me gusta

Lo revisaré y veré si ha cambiado.

Esto es lo único que me funcionó. ¡¡Gracias por compartir esto!! Mis clientes también te lo agradecen :slight_smile:

Esperamos poder obtener una solución adecuada para esto pronto.

1 me gusta

Hola,
Acabo de ampliar mi Droplet duplicando la RAM y aumentando el tamaño del disco. Sigo teniendo el mismo problema.
¿Hay algo más que pueda intentar?

# free -h
              total        used        free      shared  buff/cache   available
Mem:          1.9Gi       289Mi        83Mi        11Mi       1.6Gi       1.5Gi
Swap:         2.0Gi       3.0Mi       2.0Gi

# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            941M     0  941M   0% /dev
tmpfs           198M  1.1M  197M   1% /run
/dev/vda1        34G   14G   21G  39% /
tmpfs           986M     0  986M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           986M     0  986M   0% /sys/fs/cgroup
/dev/vda15      105M  7.4M   97M   8% /boot/efi
/dev/loop1       56M   56M     0 100% /snap/core18/2829
/dev/loop2       56M   56M     0 100% /snap/core18/2823
/dev/loop3       92M   92M     0 100% /snap/lxd/29619
/dev/loop0       64M   64M     0 100% /snap/core20/2264
/dev/loop4       64M   64M     0 100% /snap/core20/2318
/dev/loop5       39M   39M     0 100% /snap/snapd/21465
/dev/loop6       92M   92M     0 100% /snap/lxd/24061
/dev/loop7       39M   39M     0 100% /snap/snapd/21759
tmpfs           198M     0  198M   0% /run/user/0
overlay          34G   14G   21G  39% /var/lib/docker/overlay2/3c7ebf42647de2b5df34cba2b047079fd3454ea7fe9b04c7b70f227df1e7eafe/merged
1 me gusta

¡¡¡Oh Dios mío!!! ¿Por qué no leí esta solución antes? También funcionó para mí.
Entonces, ¿cuál es la solución a seguir? ¿Necesitamos seguir especificando esta imagen base en el futuro o cambiarla para obtener una imagen actualizada?