Olá a todos,
Há vários anos mantemos uma instância do Discourse auto-hospedada em https://discourse.bokeh.org. De modo geral, ela tem sido extremamente estável e exigiu quase nenhum esforço para manutenção. Em particular, a execução de atualizações costuma ser totalmente tranquila, completando-se perfeitamente sem qualquer problema.
No entanto, hoje, após uma atualização para a versão 2.7beta7 (que parecia ter concluído sem problemas), nosso site entrou em colapso completo. Ele funcionou de forma precária por algum tempo, com páginas renderizadas incorretamente e erros no console do JavaScript, mas, após tentar um rollback, a interface do usuário tornou-se completamente não funcional. Ao acessar o droplet, também tentei, sem sucesso:
Reconstrução
./launcher rebuild app
Isso falhou de várias formas em diversas tentativas.
Discourse Doctor
./discourse-doctor
Restauração
./launcher enter app
discourse restore <arquivo de backup>
Isso falhou.
Limpeza
Também tentei fazer uma “limpeza” (wipe) e depois restaurar:
./launcher stop app
./launcher destroy app
rm -r /var/discourse/shared/standalone/
Após isso, consegui, pelo menos, que uma reconstrução fosse bem-sucedida, levando ao estado de “instalação fresca”, ou seja, “Parabéns, você instalou o Discourse!”.
Agora, tentei executar discourse restore novamente, mas isso falhou mais uma vez:
EXCEÇÃO: 1 post não foi remapeado para o novo URL de upload no S3. A migração para o S3 falhou para o banco de dados '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 `'
Tentando fazer rollback...
Fazendo rollback...
Limpando arquivos...
Removendo funções do esquema discourse_functions...
Removendo o diretório temporário '/var/www/discourse/tmp/restores/default/2021-04-23-235404'...
Marcando a restauração como concluída...
Notificando o 'system' sobre o fim da restauração...
Concluído!
[FALHA]
O que é estranho é que, durante a restauração, o site parecia estar voltando ao normal, com o conteúdo antigo aparecendo. Então, a falha ocorreu e agora nada aparece, as contas sumiram, etc.
Preciso muito de qualquer orientação ou sugestão aqui. Temos backups diários de até uma semana atrás (e mais antigos no Glacier, se necessário). Deletamos uma Categoria não utilizada há alguns dias; isso poderia ser a causa dos problemas? Vou tentar um backup mais antigo para verificar, mas qualquer dica sobre um processo de restauração infalível será muito bem-vinda.