アップデート/リビルドエラー。診断と復旧方法は?

アップデートを試みましたが、終盤で失敗しました。

I, [2024-07-04T07:17:18.714988 #807]  INFO -- : Writing /var/www/discourse/public/assets/scripts/discourse-test-listen-boot-9b14a0fc65c689577e6a428dcfd680205516fe211700a71c7adb5cbcf4df2cc5.js
rake aborted!
Zlib::BufError: buffer error (Zlib::BufError)

...
< more stuff >
...

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse &amp;&amp; su discourse -c 'SKIP_EMBER_CLI_COMPILE=1 bundle exec rake themes:update assets:precompile' failed with return #&lt;Process::Status: pid 805 exit 1&gt;
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"cd"=>"$home", "tag"=>"precompile", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'SKIP_EMBER_CLI_COMPILE=1 bundle exec rake themes:update assets:precompile'"]}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.

同じエラーメッセージがこちらでも報告されているのを確認しました: "Zlib::BufError: buffer error" - Discourse update fails

しかし、maxmindアカウントIDはすでにyamlファイルに入力済みです。

コンテナに入ってこのコマンドを再度実行することもできますが、一般的に、失敗したリビルドから回復する方法はありますか、それとも人々は全体をもう一度実行するだけですか?

昨日、私は諦めてmaxmindをコメントアウトしました。その後、コンテナに入り、discourse.confに値を設定したところ、データベースを正常に取得できました(かなり複雑な回避策です)。

これがどのように起こりうるのか理解できませんが、バグのように見えます。

今となっては、maxmindなしでやるしかないと思います。

今日、私もこの問題が発生しましたが、一度だけでした。再度ビルドを実行したところ、問題なく完了しました。再現方法が一定しないのが不思議です。同様の設定を持つ他のコンテナは問題なくビルドできました。

「いいね!」 2

本日3つのサイトを再構築しましたが、いずれもテーマコンポーネントを更新した直後に上記のエラーが発生しました。

毎回、何も変更せずに2回目の再構築を実行すると正常に完了しました。Maxmindはまやかし(または単に別の問題)である可能性があると疑問に思っています。

2コンテナ構成を使用しているため、再構築の失敗は問題ありません。

「いいね!」 1

私も同じ経験をしました。初回実行時に失敗するようです。幸い、2コンテナ構成に切り替えたため、サイトは稼働したまま、再構築を2回実行できます。

バグを報告するのは気が引けますが、アヒルに似ていてアヒルのように振る舞うなら… :wink:

maxmind を使用した再構築で問題を確認しました。
複数のフォーラムで、すべて公式の同一のプラグインを使用しています。

コマンドラインから: maxmind を使用した再構築は失敗します。maxmind のコメントを解除すると、再構築は正常に機能します。

/admin から Discourse を更新: app.yml に変更はありません。問題なく更新されます。

「いいね!」 1

6件の投稿が新しいトピックに分割されました:Discourseブートストラップ中のPups execエラーの解決方法