Scaleway (マルチパートアップロード) へのバックアップアップロードが失敗する

2.6.1 stable を使用しており、S3 互換ストレージ(Scaleway)で実行中です。ログは以下の通りです:

[2021-01-30 09:52:59] アーカイブをアップロード中...
[2021-01-30 09:55:36] 例外:マルチパートアップロードの中止に失敗しました。指定されたマルチパートアップロードが存在しません。アップロード ID が無効か、マルチパートアップロードが既に中止または完了している可能性があります。
[2021-01-30 09:55:36] /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-s3-1.83.2/lib/aws-sdk-s3/multipart_file_uploader.rb:94:in `rescue in abort_upload'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-s3-1.83.2/lib/aws-sdk-s3/multipart_file_uploader.rb:82:in `abort_upload'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-s3-1.83.2/lib/aws-sdk-s3/multipart_file_uploader.rb:78:in `upload_parts'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-s3-1.83.2/lib/aws-sdk-s3/multipart_file_uploader.rb:51:in `upload'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-s3-1.83.2/lib/aws-sdk-s3/file_uploader.rb:38:in `upload'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-s3-1.83.2/lib/aws-sdk-s3/customizations/object.rb:342:in `upload_file'
/var/www/discourse/lib/backup_restore/s3_backup_store.rb:39:in `upload_file'
/var/www/discourse/lib/backup_restore/backuper.rb:301:in `upload_archive'
/var/www/discourse/lib/backup_restore/backuper.rb:41:in `run'
/var/www/discourse/script/spawn_backup_restore.rb:9:in `backup'
/var/www/discourse/script/spawn_backup_restore.rb:34:in `block in <main>'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `fork'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `<main>'
[2021-01-30 09:55:36] 古いバックアップを削除中...
[2021-01-30 09:55:36] 不要なファイルを整理中...
[2021-01-30 09:55:36] ローカルストレージからアーカイブを削除中...
[2021-01-30 09:55:36] '.tar' の残存ファイルを削除中...
[2021-01-30 09:55:36] バックアップを完了としてマーク中...
[2021-01-30 09:55:36] ディスク統計を更新中...

他の数台のサーバーでも同じ構成でバックアップが正常に動作しています(ただし、バックアップサイズが大幅に小さいため、マルチパートアップロードは関係ないと思われます)。Scaleway もマルチパートアップロードをサポートしているようです:Managing multipart uploads | Scaleway Documentation

「いいね!」 1

私も同じ現象が起きています。Scaleway S3 でです :frowning:

最初のバックアップは9日前に失敗しました:

EXCEPTION: multipart upload failed:
Your request was not formed properly;
Your request was not formed properly

その後、1〜2日おきに以下のエラーが発生します:

EXCEPTION: failed to abort multipart upload:
The specified multipart upload does not exist.
The upload ID might be invalid, or
the multipart upload might have been aborted or completed.

@Falco 何が起きているのか理解するために、どのような対応ができるでしょうか?
よろしくお願いいたします。

「いいね!」 1

これには昨日返信しました。Scaleway に連絡してください。

「いいね!」 2

完了しました
ただし、サポートチームからさらに情報が必要です :slight_smile:
各パーツに対してレスポンスが返ってくるか、エラーメッセージが表示されるかを確認するために、パーツのリストが必要です。

AWS gem でログ(HTTP リクエストなど)を有効にする方法はありますか?

よろしくお願いいたします。

「いいね!」 1

今日は彼らの幸運な日です。Discourse はオープンソースなので、何が起きているか正確に確認できます!

バックトレースによると、エラーは以下の箇所で発生しています。

これは以下のファイルです。

これは SDK のこのメソッドへの呼び出しです。

ドキュメントによると、ファイルが 15MB を超える場合は、デフォルトでマルチパートアップロードが使用されます。

ソースコードを確認すると、このメソッドが使用されているようです。

そして、74 行目でエラーが発生しています。

「いいね!」 6

修正なしで再び動作しています::grimacing:
現在は7/10が成功しています。

「いいね!」 3

朗報です。事実上の S3 仕様を実装しているおかげで、彼らが側で修正すれば、こちらで変更は不要です。

「いいね!」 3

残念ながら、同じエラーが表示され続けています…:confused:
まだ修正が完全に展開されていないだけかもしれませんね。

バックアッププロセスが100%成功しました!
この問題は私にとって「解決済み」です。