復元テスト - 機能しません

こんにちは、お気に入りのバグ発見者、サポートを悩ませるユーザーです。

本日午後、復元をテストしたところ、2回中2回とも以下のようになりました。

ERROR:  could not extend file "base/16384/3294755": wrote only 4096 of 8192 bytes at block 43985
HINT:  Check free disk space.
EXCEPTION: psql failed: HINT:  Check free disk space.
/var/www/discourse/lib/backup_restore/database_restorer.rb:92:in `restore_dump'
/var/www/discourse/lib/backup_restore/database_restorer.rb:26:in `restore'
/var/www/discourse/lib/backup_restore/restorer.rb:51:in `run'
script/discourse:149:in `restore'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.2.2/lib/thor/command.rb:27:in `run'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.2.2/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.2.2/lib/thor.rb:392:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.2.2/lib/thor/base.rb:485:in `start'
script/discourse:290:in `<top (required)>'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:58:in `load'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:58:in `kernel_load'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:23:in `run'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:492:in `exec'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:34:in `dispatch'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:28:in `start'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/exe/bundle:45:in `block in <top (required)>'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/exe/bundle:33:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Trying to rollback...
Rolling back...
Cleaning stuff up...
Dropping functions from the discourse_functions schema...
Removing tmp '/var/www/discourse/tmp/restores/default/2023-08-19-145440' directory...
Unpausing sidekiq...
Marking restore as finished...
Notifying 'system' of the end of the restore...
Finished!
[FAILED]
Restore done.

特に

Finished!
[FAILED]
Restore done.

は、ちょっと笑ってしまいました :roll_eyes:
これは「それほど悪くない」から「信じられないほど悪い」までのスケールで言うと、本当にひどいと思います。

クリーンな状態で行いました。

  • launcher stop app
  • rm -rf /var/discourse/shared
  • launcher rebuild app

テストやいじくり回しに使っている分離されたVMのステージング環境に復元しました。
試した復元は、自動復元によって作成され、S3にバックアップされた最新のものです。

その後、メールで提供されたリンクからダウンロードし、このガイドに従って復元しました。

バックアップは10GBでした。VMには、復元を開始したときに約110GBの空きがありました。

編集:Discourseバージョン 3.2.0.beta1-dev (fbf7b106cc)

ディスク容量が不足しています。このサーバーに、バックアップサイズの少なくとも3倍の空き容量があることを確認してください。

いいえ。それは「一般的な問題」という意味での「ヒント」です。

あなたの返信のすぐ上にある投稿に記載されているように:

バックアップは10GBでした。復元を開始したとき、VMには約110GBの空き容量がありました。

(読みやすくするためにGBで画像編集)

さらに調査したところ、バックアップされたデータに問題があるようです。ファイルが破損しているか、クッキングで何かが台無しになった可能性があります。

ダウンロードの問題の可能性を排除するために、別のバックアップをダウンロードして、バックアップファイル間で問題が同じかどうかを確認してみます。

さらに奇妙なことに、そのトピックとメッセージを読み込んでも、Discourse では文字通り問題は発生しません。問題なく読み込まれ、レンダリングされます。

手動で介入してその投稿を編集しました。再度テストするために、現在手動バックアップを実行中です。