ビルドの問題: [カスタムエンドポイントと組み合わせて dual-stack を設定できません。]

こんにちは :wave:

以下の問題で再構築できません。

I, [2024-11-07T08:00:56.758061 #1]  INFO -- : cd /var/www/discourse & sudo -E -u discourse bundle exec rake s3:upload_assets
rake aborted!
ArgumentError: カスタムエンドポイントと組み合わせてデュアルスタックを設定することはできません。(ArgumentError)

          raise ArgumentError, "Cannot set dual-stack in combination with a custom endpoint."
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FAILED

--------------------

Pups::ExecError: cd /var/www/discourse & sudo -E -u discourse bundle exec rake s3:upload_assets はリターンコード #<Process::Status: pid 3349 exit 1> で失敗しました

失敗場所: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'

exec はパラメータ {"cd"=>"$home", "cmd"=>["sudo -E -u discourse bundle exec rake s3:upload_assets", "sudo -E -u discourse bundle exec rake s3:expire_missing_assets"]} で失敗しました

ブートストラップは終了コード 1 で失敗しました

**ブートストラップ失敗** 上記にスクロールして、以前のエラーメッセージを探してください。複数ある場合があります。

./discourse-doctor は問題の診断に役立つ場合があります。

567dc9e1f9a4e662de6024b8504915d8b6ef1ee2d9b4303af75323ba478679e4

関連する可能性のあるコミット: FIX: Use dualstack S3 endpoint for direct uploads (#29611) · discourse/discourse@0568d36 · GitHub

S3 オブジェクトストレージ を使用して DO Spaces にアップロードしています。問題はおそらくこれに関連しています。

よろしくお願いします :slight_smile:

「いいね!」 1

これらの行をコメントアウトしたところ、再構築は正常に実行されましたが、アセットをロードできないためか、サイトがスプラッシュ画面でスタックしています。:thinking: セーフモードも同じです…

  after_assets_precompile:
    - exec:
        cd: $home
        cmd:
          - sudo -E -u discourse bundle exec rake s3:upload_assets
          - sudo -E -u discourse bundle exec rake s3:expire_missing_assets

何かアイデアはありますか?悪いタイミングなのはわかっています… :confused:

「いいね!」 1

ドニーさん、確認します。ご報告ありがとうございます。

「いいね!」 1

Natalieさん、ありがとうございます :hugs:

クイックフィックスとして、このコミットの1つ前のバージョンであるcc01555fce59e116b76c912b4c5195e111a652b2で再構築しました。これは FIX: Use dualstack S3 endpoint for direct uploads (#29611) · discourse/discourse@0568d36 · GitHub の1コミット前です。

「いいね!」 2

Digital Ocean Spaces S3 セットアップでの再構築中に、このエラーで失敗しました。

, [2024-11-07T19:09:38.615466 #1]  INFO -- : cd /var/www/discourse & sudo -E -u discourse bundle exec rake s3:upload_assets
rake aborted!
ArgumentError: Cannot set dual-stack in combination with a custom endpoint. (ArgumentError)
          raise ArgumentError, "Cannot set dual-stack in combination with a custom endpoint."
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.143.0/lib/aws-sdk-s3/endpoint_provider.rb:34:in `resolve_endpoint'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.143.0/lib/aws-sdk-s3/plugins/endpoints.rb:37:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.191.3/lib/seahorse/client/plugins/endpoint.rb:47:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.191.3/lib/aws-sdk-core/plugins/param_validator.rb:26:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.143.0/lib/aws-sdk-s3/plugins/sse_cpk.rb:24:in `call'

しかし、whatever に設定しないと、ビルドは次のように失敗します。

I, [2024-11-07T19:15:31.060936 #1]  INFO -- : cd /var/www/discourse & sudo -E -u discourse bundle exec rake s3:upload_assets
ERROR: Ensure S3 is configured in config/discourse.conf or environment vars
I, [2024-11-07T19:15:36.056204 #1]  INFO -- :


これを見つけました。

エンドポイントがここで設定されている場合、S3_REGION をクリアする必要があるかもしれません。

編集:しまった。検索したと思った。Falco、ごめん。

「いいね!」 1

奇妙なことに、これにより次のエラーが発生します。

Gem::LoadError: can't activate webrick-1.9.0, already activated webrick-1.8.2 (Gem::LoadError)

これは、インポートを実行するために使用していたインスタンスでちょうど見られたもので、「修正」するためにアップグレードしました。

このサーバーは今アップグレードできないようです。:frowning:

確信はありませんが、試す価値はあるかもしれません。以前はこれを実行する前に再構築に成功しました。

そして、この直後にコミットを選択して再構築を試しました。2回目は正常に再構築されました。

「いいね!」 1

@martin 通常、ここで行うことは、互換性のない S3 クローンを実行しているユーザーがオプトインして動作するようにするためのグローバル設定を提供することです。

IMO、現在の動作はデフォルトのままにし、互換性を高めるためのトグルを提供する必要があります。

DISCOURSE_S3_HTTP_CONTINUE_TIMEOUTDISCOURSE_S3_INSTALL_CORS_RULE などの先行事例を参照してください。

「いいね!」 3

申し訳ありません、私のミスです。これらのS3クローンはいつも忘れてしまいます。昨日、Minioでこのカスタムエンドポイントの問題を修正する必要がありました。DISCOURSE_S3_ENDPOINTが設定されている場合、dualstackは互換性がないため、絶対に使用しないようにすれば、ここで修正できると思います。皆さんがそれを使用しているようです。

「いいね!」 3

修正をマージしました。

「いいね!」 4

迅速な修正ありがとうございます!これで元通り作業できます。 :tada:

明快なご説明ありがとうございます、ラファエル!

覚えるべきことがたくさんあるからです!そして、仕様テストは、私が書くのが嫌いだと知っている、あの厄介な stub_request を必要とするのではないでしょうか。

参考までに、それは正しいように思えます。そして、stub_request を必要としないテストを書くことができるでしょう。

「いいね!」 1

10件の投稿が新しいトピックに分割されました:バックアップまたはバックアップへの移動ができません

これは fixed としてマークされるべきではないと思います。

この変更により、複数のインスタンスでバックアップが破損した可能性が非常に高いです(他のインスタンスでは、まだバックアップされていないことに気づいていないと思われます)。

これは、仕様がすべての実際のユースケースを十分に捉えきれておらず、通過すべきではない変更が通過していることを示唆しているのではないでしょうか?

「いいね!」 4

use_s3 がオンになっているサイトのみ修正され、S3 をバックアップ専用に使用しているサイトは修正されていないように思われます。

再構築は可能ですが、S3 バックアップが壊れているだけです。 :crying_cat_face:

「いいね!」 3

バックアップの問題は、Unable to backup or navigate to backups - #20 by martin で修正されました。

「いいね!」 3

このトピックは、最後の返信から3日後に自動的にクローズされました。新しい返信は許可されていません。