Ciao a tutti,
Gestiamo un’istanza auto-ospitata di Discourse all’indirizzo https://discourse.bokeh.org da diversi anni. In generale, è stata estremamente stabile e ha richiesto quasi zero manutenzione; in particolare, gli aggiornamenti sono stati quasi sempre eventi insignificanti che si sono conclusi perfettamente senza alcun problema.
Tuttavia, oggi, dopo un aggiornamento alla versione 2.7beta7 (che sembrava completarsi senza errori), il nostro sito è collassato completamente. Ha continuato a funzionare in modo precario per un po’ con pagine visualizzate in modo errato e errori nella console JS, ma dopo aver tentato un rollback, l’interfaccia utente è diventata non funzionante. Accedendo al droplet, ho anche provato invano:
Ricostruzione
./launcher rebuild app
Questo è fallito in diversi modi in diversi tentativi.
Discourse Doctor
./discourse-doctor
Ripristino
./launcher enter app
discourse restore <backup file>
Questo è fallito.
Pulizia
Ho anche provato a eseguire un “wipe” e poi un ripristino:
./launcher stop app
./launcher destroy app
rm -r /var/discourse/shared/standalone/
Dopo questo, sono riuscito almeno a far riuscire una ricostruzione, che ha portato a uno stato di “installazione pulita”, ad esempio “Congratulazioni, hai installato Discourse!”.
Quindi ora ho provato a eseguire nuovamente discourse restore, ma anche questo è fallito:
ECCEZIONE: 1 post non sono stati rimappati al nuovo URL di caricamento S3. La migrazione S3 è fallita per il database 'default'.
/var/www/discourse/lib/file_store/to_s3_migration.rb:131:in `raise_or_log'
/var/www/discourse/lib/file_store/to_s3_migration.rb:86:in `migration_successful?'
/var/www/discourse/lib/file_store/to_s3_migration.rb:357:in `migrate_to_s3'
/var/www/discourse/lib/file_store/to_s3_migration.rb:65:in `migrate'
/var/www/discourse/lib/file_store/s3_store.rb:240:in `copy_from'
/var/www/discourse/lib/backup_restore/uploads_restorer.rb:62:in `restore_uploads'
/var/www/discourse/lib/backup_restore/uploads_restorer.rb:44:in `restore'
/var/www/discourse/lib/backup_restore/restorer.rb:62:in `run'
script/discourse:145:in `restore'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.1.0/lib/thor/command.rb:27:in `run'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.1.0/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.1.0/lib/thor.rb:392:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.1.0/lib/thor/base.rb:485:in `start'
script/discourse:286:in `'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.7/lib/bundler/cli/exec.rb:63:in `load'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.7/lib/bundler/cli/exec.rb:63:in `kernel_load'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.7/lib/bundler/cli/exec.rb:28:in `run'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.7/lib/bundler/cli.rb:494:in `exec'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.7/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.7/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.7/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.7/lib/bundler/cli.rb:30:in `dispatch'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.7/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.7/lib/bundler/cli.rb:24:in `start'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.7/exe/bundle:49:in `block in '
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.7/lib/bundler/friendly_errors.rb:130:in `with_friendly_errors'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.7/exe/bundle:37:in `'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `'
Tentativo di rollback in corso...
Rollback in corso...
Pulizia dei dati...
Rimozione delle funzioni dallo schema discourse_functions...
Rimozione della directory tmp '/var/www/discourse/tmp/restores/default/2021-04-23-235404'...
Segnatura del ripristino come completato...
Notifica al sistema della fine del ripristino...
Completato!
[FALLITO]
La cosa strana è che durante il ripristino, il sito sembrava tornare alla normalità, con la comparsa dei vecchi contenuti. Poi si è verificato il fallimento e ora non viene mostrato nulla, gli account sono spariti, ecc.
Potrei davvero usare qualsiasi guida o suggerimento qui. Abbiamo backup giornalieri fino a una settimana fa (e anche più indietro su Glacier se necessario). Abbiamo eliminato una categoria non utilizzata qualche giorno fa; potrebbe essere la causa del problema? Proverò con un backup più vecchio per verificare, ma qualsiasi indicazione su un processo di ripristino infallibile sarebbe benvenuta.