再起動と管理パネルからのアップグレード後のフォーラムの遅延を改善するには?

アップグレードが途中で失敗し、フォーラムがオフラインになりました。codexを使用してアップグレードを修復したところ、再び動作するようになりました。

Digital Oceanでホストされています

どうやら、私の管理パネルからのみ遅延が発生しているようです

調査結果:

  • discourse-question-answerプラグインの上流リポジトリが古くなっています。現在実行中のコピーは2022-08-17日付のものです。

  • 生きているサイトはこの問題のために失敗していたわけではありませんでした。categories.json、latest.json、および/は、復旧後にすべて正常にサービスを提供していました。

  • 実際の問題はより限定的でした:再構築/ブートストラップ中に、ChatのワンタイムカテゴリシーディングがプラグインのBasicCategorySerializerフックにヒットし、そのフックがobject.send(key)を過度に呼び出しました。

    これにより、再構築ログに「Error seeding chat category - #<NoMethodError: undefined method ‘qa_enabled’ for an instance of Category>」というエラーが発生しました。

変更内容:

  • 実行中のプラグインシリアライザーにパッチを適用し、盲目的にsendを呼び出す代わりに安全なフォールバックを使用するようにしました。

  • 将来の再構築で自動的に再適用されるよう、同じ互換性パッチを/var/discourse/containers/app.ymlに追加しました。

  • バックアップを/var/discourse/containers/app.yml.bak-2026-04-08および/var/discourse/containers/app.yml.bak-2026-04-08-qaに保持しました。

検証:

注意点:

  • 永続的フックを追加した後、フル再構築を実行していません。ライブアプリは正常であり、同等のパッチが既に実行中のコンテナで正常に適用されているためです。次の

    再構築ではこれが維持されるはずですが、その正確なパスはまだ再実行されていません。

もしよろしければ、そのプラグインを最終的にフォークして固定し、放棄された上流リポジトリから直接クローンするのではなく、そのプラグインをどう扱うべきかについてもう一度確認することもできます。

そのプラグインは廃止されました。削除する必要があります。

「いいね!」 1