Aggiornamento self-hosted a 3.1.0.beta2 con tipica installazione multi-container richiede ulteriore downtime

Vorrei ripetere che non stavo usando l’aggiornamento GUI. Ho un’installazione multi-container. Ho fatto:

git pull
./launcher bootstrap app
./launcher destroy app && ./launcher start app
./launcher cleanup

(Uso app per l’app web anche per installazioni multi-container. So che non è la pratica normale. Odio digitare web_only)

Qualche tempo dopo aver avviato bootstrap e prima di distruggere l’app, la vecchia versione in esecuzione contro il nuovo database ha mostrato solo una schermata di errore. Non ricordo il contenuto e non ho creato un’interruzione più lunga fermandomi a fare uno screenshot prima di distruggere/avviare, ma era solo testo su bianco e non la pagina di manutenzione del sistema. Ho visto questo solo poche volte prima, che quando bootstrap esegue db:migrate come parte della ricostruzione asincrona “zero-downtime”, il vecchio software ancora in esecuzione fallisce a causa di un’incoerenza dello schema.

Quello che ho visto è stato qualunque cosa accada in caso di incoerenza del database. È molto meglio che procedere beatamente, rompendo il database! Quando ho postato, era per avvertire che questo era uno di quei rari casi in cui l’applicazione di un aggiornamento puntuale (qui da 3.1.0.beta1 a 3.1.0.beta2) ha creato un’incompatibilità di schema tra il codice 3.1.0.beta1 e il database dopo aver eseguito il db:migrate di 3.1.0.beta2, come accade raramente ma occasionalmente con i normali aggiornamenti a bassa interruzione nel deployment multi-container.

La mia esperienza è diversa dall’errore segnalato con ruby nell’aggiornamento GUI. È un problema completamente non correlato. Riconosco che il mio post è stato spostato dall’annuncio a una discussione generale “problemi con”, ma voglio essere chiaro che il motivo per cui l’ho postato nell’annuncio era per avvertire altri self-hoster come me quando hanno visto l’annuncio che questo particolare aggiornamento era uno che poteva avere questo impatto.

Il mio messaggio non si lamentava di un bug, o anche di un problema. Era inteso solo come avviso di un caso normale ma infrequente associato a questa particolare release e non evidenziato nelle note di rilascio.

Le lamentele sul fatto che il gestore docker non riconosca di non poter aggiornare dall’interno dell’immagine sono completamente estranee al mio tentativo di fornire una notifica utile ad altri amministratori self-hosting.

Sarebbe molto sensato separare questi problemi non correlati in thread indipendenti per problemi indipendenti. EDIT di @supermathie: Fatto

1 Mi Piace