Итак, я пытаюсь восстановить резервную копию, но получаю ошибки. Похоже, проблема связана с резервными копиями S3.
Важно отметить, что используется совместимый с S3 сервис (Scaleway). Однако я не уверен, специфична ли эта ошибка для совместимого сервиса или нет: настройка прошла очень гладко, и сервис работал исправно. Если проблема именно в Scaleway, то я, скорее всего, откажусь от их услуг, так как понимаю, что официально поддерживается только AWS S3.
Для настройки я использовал это руководство: Configure an S3 compatible object storage provider for uploads, поэтому конфигурация находится в файле app.yml.
after_assets_precompile:
- exec:
cd: $home
cmd:
- sudo -E -u discourse bundle exec rake s3:upload_assets
Для Scaleway я использовал ту же конфигурацию в файле app.yml (не настраивал это в админ-панели, так как это казалось ненужным): конфигурация Scaleway
Я пробовал запускать восстановление как из админ-панели, так и через командную строку на текущем сервере, а также настроил новый сервер (скопировав туда app.yml) и выполнял восстановление через командную строку. Ошибки были одинаковыми.
[ЗАПУЩЕНО]
'system' начал восстановление!
Восстановление помечено как запущенное...
Проверка существования /var/www/discourse/tmp/restores/default/2020-07-16-131434...
Загрузка архива во временную директорию...
#<Thread:0x000055c73a831df8@/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/aws-sdk-s3-1.66.0/lib/aws-sdk-s3/file_downloader.rb:116 run> завершился с ошибкой (report_on_exception = true):
Traceback (most recent call last):
1: from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/aws-sdk-s3-1.66.0/lib/aws-sdk-s3/file_downloader.rb:120:in `block (3 levels) in thread_batches'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/aws-sdk-s3-1.66.0/lib/aws-sdk-s3/file_downloader.rb:128:in `write': undefined method `split' for nil:NilClass (NoMethodError)
ИСКЛЮЧЕНИЕ: undefined method `split' for nil:NilClass
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/aws-sdk-s3-1.66.0/lib/aws-sdk-s3/file_downloader.rb:128:in `write'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/aws-sdk-s3-1.66.0/lib/aws-sdk-s3/file_downloader.rb:120:in `block (3 levels) in thread_batches'
Попытка отката...
Откат не потребовался
Очистка временных файлов...
Удаление временной директории '/var/www/discourse/tmp/restores/default/2020-07-16-131434'...
Возобновление работы sidekiq...
Восстановление помечено как завершенное...
Уведомление 'system' об окончании восстановления...
#<Thread:0x000055c73a831510@/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/aws-sdk-s3-1.66.0/lib/aws-sdk-s3/file_downloader.rb:116 run> завершился с ошибкой (report_on_exception = true):
Traceback (most recent call last):
1: from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/aws-sdk-s3-1.66.0/lib/aws-sdk-s3/file_downloader.rb:120:in `block (3 levels) in thread_batches'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/aws-sdk-s3-1.66.0/lib/aws-sdk-s3/file_downloader.rb:128:in `write': undefined method `split' for nil:NilClass (NoMethodError)
#<Thread:0x000055c73a8316c8@/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/aws-sdk-s3-1.66.0/lib/aws-sdk-s3/file_downloader.rb:116 run> завершился с ошибкой (report_on_exception = true):
Traceback (most recent call last):
1: from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/aws-sdk-s3-1.66.0/lib/aws-sdk-s3/file_downloader.rb:120:in `block (3 levels) in thread_batches'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/aws-sdk-s3-1.66.0/lib/aws-sdk-s3/file_downloader.rb:128:in `write': undefined method `split' for nil:NilClass (NoMethodError)
#<Thread:0x000055c73a8319e8@/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/aws-sdk-s3-1.66.0/lib/aws-sdk-s3/file_downloader.rb:116 run> завершился с ошибкой (report_on_exception = true):
Traceback (most recent call last):
1: from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/aws-sdk-s3-1.66.0/lib/aws-sdk-s3/file_downloader.rb:120:in `block (3 levels) in thread_batches'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/aws-sdk-s3-1.66.0/lib/aws-sdk-s3/file_downloader.rb:128:in `write': undefined method `split' for nil:NilClass (NoMethodError)
Готово!
[ОШИБКА]
Восстановление завершено.
Возможно, ошибка возникает только при загрузке резервной копии? ![]()