Всем привет,
Мы уже несколько лет используем самохостинг Discourse по адресу https://discourse.bokeh.org. В целом система работала безотказно и практически не требовала обслуживания. В частности, обновления обычно проходили абсолютно незаметно и завершались без каких-либо проблем.
Однако сегодня после обновления до версии 2.7beta7 (которое, казалось, прошло без сбоев) наш сайт полностью перестал работать. Некоторое время он функционировал с ошибками рендеринга страниц и ошибками в консоли JS, но после попытки отката интерфейс стал полностью неработоспособным. Зайдя на сервер (droplet), я также безрезультатно попробовал следующее:
Пересборка
./launcher rebuild app
Это несколько раз завершалось неудачей разными способами.
Discourse Doctor
./discourse-doctor
Восстановление
./launcher enter app
discourse restore <файл резервной копии>
Это также не сработало.
Очистка
Я также попробовал выполнить “очистку” (wipe), а затем восстановить:
./launcher stop app
./launcher destroy app
rm -r /var/discourse/shared/standalone/
После этого мне хотя бы удалось успешно выполнить пересборку, что привело к состоянию “чистой установки”, например, с сообщением: “Congratulations, you installed Discourse!”.
Теперь я снова попытался запустить discourse restore, но это снова не удалось.
EXCEPTION: 1 post не переотображен на новый URL загрузки S3. Миграция S3 не удалась для базы данных '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 `'
Попытка отката...
Выполняется откат...
Очистка временных файлов...
Удаление функций из схемы discourse_functions...
Удаление временной директории '/var/www/discourse/tmp/restores/default/2021-04-23-235404'...
Отметка восстановления как завершенного...
Уведомление 'system' об окончании восстановления...
Завершено!
[FAILED]
Странно то, что во время восстановления сайт, казалось, возвращался к нормальному состоянию: появлялся старый контент. Затем произошел сбой, и теперь ничего не отображается, учетные записи исчезли и так далее.
Мне очень нужна любая помощь или советы. У нас есть ежедневные резервные копии за последнюю неделю (более старые доступны в Glacier, если потребуется). Несколько дней назад мы удалили неиспользуемую категорию — не могло ли это стать причиной проблем? Я попробую восстановить из более старой резервной копии, но буду благодарен за любые рекомендации по надежному процессу восстановления.