rake uploads:migrate_to_s3 が無限に実行され続ける

そのコマンドを実行すると、以下のような出力になります:

Migrating uploads to S3 for 'default'...
Uploading files to S3...
 - Listing local files
 =\u003e 23 files
 - Listing S3 files
. =\u003e 94 files
 - Syncing files to S3
.......................
Updating the URLs in the database...
Removing old optimized images...
Flagging all posts containing lightboxes for rebake...
4 posts were flagged for a rebake
4 posts still require rebaking and will be rebaked during regular job
Done!
Migrating uploads to S3 for 'default'...
Uploading files to S3...
 - Listing local files
 =\u003e 23 files
 - Listing S3 files
. =\u003e 94 files
 - Syncing files to S3
.......................
Updating the URLs in the database...
Removing old optimized images...
Flagging all posts containing lightboxes for rebake...
4 posts were flagged for a rebake
4 posts still require rebaking and will be rebaked during regular job
Done!
Migrating uploads to S3 for 'default'...
Uploading files to S3...
 - Listing local files
 =\u003e 23 files
 - Listing S3 files
. =\u003e 94 files
 - Syncing files to S3
.......................
Updating the URLs in the database...
Removing old optimized images...
Flagging all posts containing lightboxes for rebake...
4 posts were flagged for a rebake
4 posts still require rebaking and will be rebaked during regular job
Done!
Migrating uploads to S3 for 'default'...
Uploading files to S3...
 - Listing local files
 =\u003e 23 files
 - Listing S3 files
. =\u003e 94 files
 - Syncing files to S3
.......................

そして、これが無限に続きます。

最終的に Ctrl-C で中断し、rake posts:rebake を実行すると正常に動作しました。

試しに再度 rake uploads:migrate_to_s3 コマンドを実行してみましたが、上記と同じ挙動(同じ出力、同じ無限ループ)が繰り返されました。

何が起きているのか、あるいはこれが問題なのかどうかはわかりませんが、報告しておきました。何かご存知ですか?

これを確認しました。

元のデータベースを移行する際に DISCOURSE_S3_XXX 変数を設定して S3 アップロードを有効化し、新しいイメージを構築しました。これにより、最初からすべての画像が S3 に保存されるかと思われましたが、残念ながらそのバックアップを復元すると、S3 への移行を試みる際に失敗します。

その後、コマンドラインで環境変数をすべて設定した上で rake uploads:migrate_to_s3 を実行しましたが、OP で説明されている無限ループが発生しました。

さらに、すべての DISCOURSE_S3 設定をコマンドラインに含めて、コマンドラインから復元を試みました。

これでバックアップを作成して復元できるかと思いましたが、そうではありませんでした。Web インターフェースからの復元は失敗し、S3 パラメータを渡さずにコマンドラインから復元しても失敗します。

つまり、S3 にアップロードされたファイルを含むバックアップを復元するには、コマンドラインから実行し、かつ復元時に S3 設定をコマンドラインで渡す必要があるようです。

S3 アップロードを含むバックアップを UX 経由で復元できないのは、バグのように思われます。

次に復元を試みる方のために :wink: @pfaffman が推奨しているように、コマンドラインオプションをすべて復元コマンドと同じ行に記述する正確な構文は以下の通りです。つまり、4 つの変数をすべて定義し、最後に復元コマンドを記述するだけです。

DISCOURSE_S3_BUCKET=my-forum-storage DISCOURSE_S3_REGION=us-east-1 DISCOURSE_S3_ACCESS_KEY_ID=asdasdasdasdasdadsasdas DISCOURSE_S3_SECRET_ACCESS_KEY=aasdasdasdasdasdadsasdasasdasdasdasd discourse restore my-forums-2020-04-11-232922-v20200408121834.tar.gz

@pnoeric 無限ループは FIX: Infinite loop in migrate_to_s3 rake task · discourse/discourse@baae0e7 · GitHub で修正されました。

@pfaffman この問題は FIX: Restore to S3 didn't work without env variables · discourse/discourse@c6b411f · GitHub で修正されるはずです。

やった!どうもありがとう。(時には❤️だけでは足りないこともあるからね。)

はい、私も同感です!!迅速な対応をありがとうございます。大変感謝しています。E