Se cuelga discourse y discourse restore FALLÓ

Ejecuto el comando ./launcher rebuild app


redis está listo para salir, adiós... Discourse se queda colgado - 40 min, detengo con Ctrl + C

Está cargando todo el tiempo. Como resultado, no se creó el nuevo contenedor. ¿Podrías explicar qué tipo de registros en Discourse nos ayudarían a encontrar la causa?

¿Podría tratarse de un problema de asignación de recursos?

¿Hay otros sitios web o servicios alojados en este servidor? ¿Cuánta RAM/CPU está disponible en tu servidor?

recursos del servidor

Eso es normal.

Eso no lo es. Generalmente, el nuevo contenedor se inicia en menos de un minuto después de ese mensaje.

¿Y lo has intentado más de una vez con el mismo resultado?

sí, varias veces, con el mismo resultado

Estaba en una rama 3d050bdaa31633a954758894629c0eb9fea537d0

Quiero actualizar a fe71c43c57c0248a8264245cb6ff0dc114da335a

y Discourse se queda colgado !!

production.log

Error al conectar con Redis en localhost:6379 (Errno::ENETUNREACH). Suscripción fallida, reintentando en 1 segundo. Pila de llamadas ["/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:363:in `rescue in establish_connection'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:344:in `establish_connection'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:106:in `block in connect'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:307:in `with_reconnect'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:105:in `connect'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:382:in `ensure_connected'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:231:in `block in process'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:320:in `logging'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:230:in `process'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:139:in `block in call_loop'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:293:in `with_socket_timeout'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:138:in `call_loop'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/subscribe.rb:44:in `subscription'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/subscribe.rb:13:in `subscribe'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis.rb:3468:in `_subscription'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis.rb:2301:in `block in subscribe'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis.rb:51:in `block in synchronize'", "/usr/local/lib/ruby/2.6.0/monitor.rb:235:in `mon_synchronize'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis.rb:51:in `synchronize'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis.rb:2300:in `subscribe'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-3.2.0/lib/message_bus/backends/redis.rb:287:in `global_subscribe'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-3.2.0/lib/message_bus.rb:741:in `global_subscribe_thread'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-3.2.0/lib/message_bus.rb:689:in `block in new_subscriber_thread'"]
Excepción del trabajo: Error al conectar con Redis en localhost:6379 (Errno::ENETUNREACH)

Excepción del trabajo: Error al conectar con Redis en localhost:6379 (Errno::ENETUNREACH)

Excepción del trabajo: Error al conectar con Redis en localhost:6379 (Errno::ENETUNREACH)

Excepción del trabajo: Error al conectar con Redis en localhost:6379 (Errno::ENETUNREACH)

Excepción del trabajo: Error al conectar con Redis en localhost:6379 (Errno::ENETUNREACH)

Excepción del trabajo: Error al conectar con Redis en localhost:6379 (Errno::ENETUNREACH)

Excepción del trabajo: Error al conectar con Redis en localhost:6379 (Errno::ENETUNREACH)

Error al conectar con Redis en localhost:6379 (Errno::ENETUNREACH). Suscripción fallida, reintentando en 1 segundo. Pila de llamadas ["/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:363:in `rescue in establish_connection'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:344:in `establish_connection'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:106:in `block in connect'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:307:in `with_reconnect'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:105:in `connect'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:382:in `ensure_connected'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:231:in `block in process'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:320:in `logging'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:230:in `process'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:125:in `call'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis.rb:915:in `block in get'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis.rb:51:in `block in synchronize'", "/usr/local/lib/ruby/2.6.0/monitor.rb:235:in `mon_synchronize'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis.rb:51:in `synchronize'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis.rb:914:in `get'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-3.2.0/lib/message_bus/backends/redis.rb:360:in `process_global_backlog'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-3.2.0/lib/message_bus/backends/redis.rb:271:in `block in global_subscribe'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-3.2.0/lib/message_bus/backends/redis.rb:284:in `global_subscribe'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-3.2.0/lib/message_bus.rb:741:in `global_subscribe_thread'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-3.2.0/lib/message_bus.rb:689:in `block in new_subscriber_thread'"]
Excepción del trabajo: Error al conectar con Redis en localhost:6379 (Errno::ENETUNREACH)

Creando ámbito :visible_groups. Sobrescribiendo el método existente Group.visible_groups.
Creando ámbito :visible. Sobrescribiendo el método existente Notification.visible.
Creando ámbito :public_posts. Sobrescribiendo el método existente Post.public_posts.
Creando ámbito :private_posts. Sobrescribiendo el método existente Post.private_posts.
Creando ámbito :open. Sobrescribiendo el método existente Poll.open.
Migrando a CreateDiscourseVotingCategorySettings (20200727220143)
Migrando a CreateDiscourseVotingVotes (20200728222920)
Migrando a CreateDiscourseVotingTopicVoteCount (20200729042607)
Creando ámbito :visible_groups. Sobrescribiendo el método existente Group.visible_groups.
Creando ámbito :visible. Sobrescribiendo el método existente Notification.visible.
Creando ámbito :public_posts. Sobrescribiendo el método existente Post.public_posts.
Creando ámbito :private_posts. Sobrescribiendo el método existente Post.private_posts.
Creando ámbito :open. Sobrescribiendo el método existente Poll.open.
Creando ámbito :visible_groups. Sobrescribiendo el método existente Group.visible_groups.
Creando ámbito :visible. Sobrescribiendo el método existente Notification.visible.
Creando ámbito :public_posts. Sobrescribiendo el método existente Post.public_posts.
Creando ámbito :private_posts. Sobrescribiendo el método existente Post.private_posts.
Creando ámbito :open. Sobrescribiendo el método existente Poll.open.

Ubuntu 14.04 parece bastante antiguo; en las últimas semanas he visto varios mensajes donde ha surgido este problema:
https://meta.discourse.org/search?q=14.04%20order%3Alatest

quizás un cambio en una dependencia entre mayo y ahora haya roto algo :roll_eyes:

3 Me gusta

Gracias por las respuestas.

Tengo un nuevo servidor con Ubuntu 20.04.1 LTS y Docker instalado.

¿Cómo puedo mover mi antiguo prod-forum a este servidor?
¿Podrían sugerirme un manual paso a paso?

Construye desde cero siguiendo la guía normal. Copia app.yml. Reconstruye. Importa el archivo de respaldo de Discourse del primer servidor. Listo.

(¡Ah, y un pequeño detalle: ¡reasigna la IP para el dominio!)

3 Me gusta

Genial, pero crear copias de seguridad a través del panel de administración no funciona para nosotros))

Transferir contenedor Docker

docker ps -a

docker commit c559bec6f29a local_discourse/app
docker save local_discourse/app > /tmp/local_discourse_app.tar.gz
scp /tmp/local_discourse_app.tar.gz root@mi-nuevo-servidor:/tmp/
---
docker load < /tmp/local_discourse_app.tar.gz
docker run local_discourse/app

Los problemas ocurren en este paso: NoMethodError on docker run - #8 by Dev_Work

1 me gusta

¿No tienes copias de seguridad existentes fuera del sitio?

2 Me gusta

Necesito una copia con datos actualizados (sin copias de seguridad recientes)

1 me gusta

¿Se producen errores al restaurar una copia de seguridad en un nuevo servidor?

./launcher enter app
discourse restore discourse-2020-08-24-103334-v20200811004537.tar.gz

Hola @Dev_Work

Lamento saber que estás teniendo problemas con esto.

Así que, para revisar:

  • Realizaste una copia de seguridad manual completa de tu sitio y esa copia de seguridad es:
discourse-2020-08-24-103334-v20200811004537.tar.gz 
  • Luego instalaste Discourse desde cero utilizando el método estándar:
https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md
  • Hiciste esto en un servidor Ubuntu 20.04.1 LTS nuevo e impecable con Docker instalado y probado.

  • ¿Luego restauraste manualmente con la copia de seguridad anterior en el nuevo servidor, ¿correcto?

¿Es esto correcto y es aquí donde te encuentras ahora en la historia?

2 Me gusta

Gracias por la respuesta.
Sí, es correcto, surge un problema en la nueva versión de Ubuntu 20.04.1 LTS.

¿Creaste un administrador con el nombre de usuario “pavel_BLANKEDOUT” antes de intentar el proceso de restauración manual de Discourse?

Supongo que este no es el problema, solo pregunto para cubrir todas las bases, ya que el usuario “pavel_BLANKEDOUT” se menciona en tu error de clave duplicada.

No, no se creó.

El usuario administrador no está en la base de datos de respaldo.

Hola @Dev_Work

¿Y tu sitio original, donde la copia de seguridad que estás usando está completamente caída?

¿O puedes entrar al contenedor de tu sitio antiguo y verificar si hay un índice corrupto en la base de datos de Discourse?

Además, ¿qué versión de PostgreSQL estaba ejecutando tu instancia antigua y rota? ¿10 o 12?

2 Me gusta

Parece ser mi problema, Search results for 'could not create unique index category:6' - Discourse Meta

llanto :frowning:

ERROR:  no se pudo crear el índice único "index_user_emails_on_email"
DETALLE:  La clave (lower(email::text))=(andrii_test@local.com) está duplicada.
EXCEPCIÓN: psql falló: DETALLE:  La clave (lower(email::text))=(andrii_test@local.com) está duplicada.
/var/www/discourse/lib/backup_restore/database_restorer.rb:95:in `restore_dump'
/var/www/discourse/lib/backup_restore/database_restorer.rb:26:in `restore'
/var/www/discourse/lib/backup_restore/restorer.rb:49:in `run'
script/discourse:143:in `restore'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/thor-1.0.1/lib/thor/command.rb:27:in `run'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/thor-1.0.1/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/thor-1.0.1/lib/thor.rb:392:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/thor-1.0.1/lib/thor/base.rb:485:in `start'
script/discourse:284:in `<top (required)>'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:63:in `load'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:63:in `kernel_load'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:28:in `run'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli.rb:476:in `exec'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor.rb:399:in `dispatch'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli.rb:30:in `dispatch'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/base.rb:476:in `start'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli.rb:24:in `start'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/exe/bundle:46:in `block in <top (required)>'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/friendly_errors.rb:123:in `with_friendly_errors'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/exe/bundle:34:in `<top (required)>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'

Servidor antiguo usaba PostgreSQL 12

Sitio y servidor antiguos funcionando

puedo entrar al contenedor del sitio antiguo (¿cómo verificar un índice corrupto?)