Bootstrap Container si blocca su su discourse -c 'bundle exec rake db:migrate'

Al momento stiamo eseguendo questa release recente:

È ancora in esecuzione nel nostro container di produzione (nessun problema).

Sto cercando di eseguire il bootstrap basato su questa release:

Ho provato diverse volte oggi e ogni volta si blocca qui:

Screen Shot 2021-02-11 at 5.32.24 PM

Ho controllato i log nel container dei dati e in quello dell’app in standby (stiamo eseguendo il bootstrap) e non ci sono errori o problemi.

Ogni volta che eseguo il bootstrap, si blocca su questa riga:

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

Avete qualche indizio su dove guardare per aiutare a debuggare il problema?

Ho controllato tutti i log a cui potevo pensare (in tutti i container) e non riesco a trovare problemi.

Grazie.

Informazioni aggiuntive:

Ogni volta che si blocca e io interrompo il processo di bootstrap con Ctrl+C, sembra lasciare un processo postmaster, che posso successivamente terminare.

Ecco un esempio:

Aggiornamento:

Il bootstrap si ricostruisce correttamente se commento la riga “db:migrate” nel template web.

C’è un problema strano con “rails db:migrate” che si blocca senza errori, qualcosa che non ho mai sperimentato prima.

Mi chiedo se ci sia un errore (o qualche problema sottostante) in questa recente migrazione?

Vedi anche:

Ciao @neounix, siamo a conoscenza di un problema con la migrazione che hai collegato e stiamo lavorando a una soluzione in questo momento

2 Mi Piace

Ciao @david

Grazie per la risposta!

Stavo esaminando la migrazione proprio ora e, non essendo un esperto di migrazione del database di Discourse, la mia prima impressione è che questo possa essere il problema?

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

Comunque, non sono qualificato per approfondire ulteriormente le problematiche di migrazione di Discourse, quindi mi ritiro e resto a disposizione.

Grazie ancora!

Possiamo interrompere in sicurezza la migrazione senza perdere dati e tornare indietro di alcuni commit?

Ha funzionato.

1 Mi Piace

Ciao @neounix,

scusa per aver incluso quella migrazione pesante e difettosa nel codice. Quelle modifiche sono state annullate, quindi il nuovo deploy dovrebbe funzionare:

4 Mi Piace

Ciao @kris.kotlarek,

Grazie per l’aggiornamento:

Tendo a concordare che questa “migrazione pesante” richieda quasi sicuramente un’ulteriore revisione e test di sviluppo rigorosi su una configurazione di test con un database di grandi dimensioni prima di essere unita al core. Fortunatamente per il nostro sito, ho sempre avviato in parallelo rispetto alla produzione, quindi non abbiamo subito interruzioni durante i fallimenti della migrazione; quindi, da parte nostra non ci sono preoccupazioni. Grazie per aver eseguito il revert così rapidamente.

Solo per informazione (solo per essere tecnicamente precisi, scusate…), ho controllato il DB subito dopo la ricostruzione e il processo di “revert” non ha eliminato la tabella dal DB. Non è un grosso problema, solo per vostra informazione:

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)

Grazie ancora per il vostro duro lavoro in questo ambito e per aver eseguito rapidamente il revert della migrazione.

2 Mi Piace

Questa migrazione sta procedendo senza intoppi, in base all’ultimo commit:

4 Mi Piace

Questo argomento è stato automaticamente chiuso dopo 6 giorni. Non sono più consentite nuove risposte.