El contenedor de Bootstrap se cuelga en su discourse -c 'bundle exec rake db:migrate'

Actualmente estamos ejecutando esta versión reciente:

Aún se está ejecutando en nuestro contenedor de producción (sin problemas).

Estoy intentando realizar un arranque inicial (bootstrap) basado en esta versión:

He intentado varias veces hoy, y cada vez se queda colgado aquí:

Screen Shot 2021-02-11 at 5.32.24 PM

He revisado los registros en el contenedor de datos y en el contenedor de la aplicación en espera (que es donde estamos realizando el arranque inicial) y no hay errores ni problemas.

Cada vez que ejecuto el arranque inicial, se queda colgado en esta línea:

I, [2021-02-11T10:37:25.133098 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'

¿Alguna pista sobre dónde buscar para ayudar a depurar esto?

He revisado todos los registros que se me ocurren (en todos los contenedores) y no he encontrado problemas.

Gracias.

Información adicional:

Cada vez que se queda colgado y salgo del proceso de arranque inicial con Control+C, parece dejar un proceso postmaster, el cual puedo eliminar posteriormente.

Aquí hay un ejemplo:

Actualización:

El arranque inicial se reconstruye correctamente si comento la línea “db:migrate” en la plantilla web.

Hay algún problema extraño con “rails db:migrate” quedándose colgado sin errores, algo que nunca había experimentado antes.

Me pregunto si hay un error (o algún problema subyacente) en esta migración reciente:

Véase también:

Hola @neounix, somos conscientes de un problema con la migración que enlazaste y estamos trabajando en una solución ahora mismo.

2 Me gusta

Hola @david

¡Gracias por la respuesta!

Estaba revisando la migración ahora mismo y, como “no soy un experto en migraciones de bases de datos de Discourse”, pensé que esto podría ser el problema:

 add_index :dismissed_topic_users, %i(user_id topic_id), unique: true

De todos modos, no estoy cualificado para profundizar más en los problemas de migración de Discourse, así que me retiro y me mantengo a la espera.

¡Gracias de nuevo!

¿Podemos abortar con seguridad la migración sin pérdida de datos y volver a unos cuantos commits anteriores?

Funcionó.

1 me gusta

Hola @neounix,

lo siento por incluir esa migración pesada y defectuosa en la base de código. Esos cambios fueron revertidos, por lo que el nuevo despliegue debería funcionar bien:

4 Me gusta

Hola @kris.kotlarek

Gracias por la actualización:

Tiendo a estar de acuerdo en que esta “migración pesada” muy probablemente requiera una revisión adicional y pruebas de desarrollo rigurosas en una configuración de prueba con una base de datos grande antes de ser fusionada en el núcleo. Por suerte para nuestro sitio, siempre hago el arranque en paralelo con la producción, por lo que no sufrimos ningún tiempo de inactividad durante las fallas de la migración, así que no hay de qué preocuparse de nuestro lado. Gracias por revertir tan rápidamente.

Solo para tu información (solo siendo técnicamente preciso, lo siento por eso…), revisé la base de datos justo después de reconstruirla y el proceso de “reversión” no eliminó la tabla de la base de datos, no es gran cosa, solo para tu información:

discourse=> \d dismissed_topic_users

                                        Table "public.dismissed_topic_users"
   Column   |            Type             | Collation | Nullable |                      Default                      
------------+-----------------------------+-----------+----------+---------------------------------------------------
 id         | bigint                      |           | not null | nextval('dismissed_topic_users_id_seq'::regclass)
 user_id    | integer                     |           |          | 
 topic_id   | integer                     |           |          | 
 created_at | timestamp without time zone |           |          | 
Indexes:
    "dismissed_topic_users_pkey" PRIMARY KEY, btree (id)
    "index_dismissed_topic_users_on_user_id_and_topic_id" UNIQUE, btree (user_id, topic_id)

Gracias nuevamente por tu arduo trabajo en esto y por revertir rápidamente la migración.

2 Me gusta

Esta migración está funcionando sin problemas ahora, según el último commit:

4 Me gusta

Este tema se cerró automáticamente después de 6 días. Ya no se permiten nuevas respuestas.