3.4.0.beta1-devへのアップデート後に多くのHTTP 502と429エラーが発生しています

Discourse バージョン: 3.4.0.beta1-dev (bf3d8a0a94)

昨日更新し、ここで推奨されているように Cloudflare のミニファイを無効にする必要がありました。

しかし、それ以来、多くのユーザー(私も含めて)が 502 (Bad Gateway) および 529 (Too Many Requests) の複数のインスタンスを経験しています。

問題の軽減を試みるために、このガイドにも従いました。

しかし、これらのエラーの頻度に関して何も変わっていないようです。

更新は昨日午前 11 時頃に行われました。プラグインを無効にしたかったため、完全な再構築を実行しました。

サーバーと Discourse を監視する Prometheus+Grafana インスタンスがありますが、サーバーのロードに関しては問題ないようです。

Discourse メトリクス(昨日の午前 11 時頃のメトリクスの低下は、コンテナをダウンさせた再構築によるものです):

ここでも、奇妙なパターンは見られません。

しかし、これは、ユーザーにプライベートメッセージを送信しようとした直後のブラウザコンソールです。

提供できるその他の情報(あらゆる種類のログ)があれば、遠慮なくお尋ねください。ありがとうございます。

ちなみに、参考までに、多くの「バックグラウンド」リアルタイム操作も明らかに遅延しています。

例えば、すでに読んだトピックが既読として登録されていません。

念のため確認ですが、この手順も実行してから再構築しましたよね?

「いいね!」 1

はい、すみません、追加するのを忘れましたが、以前にapp.ymlファイルにCloudflareテンプレートを追加していました。初日からずっとCloudflareの後ろにいました。

これはapp.ymlの一部です。独自の証明書を独立して更新しているため、letsencryptのものはコメントアウトされています。

## これはオールインワンのスタンドアロンDiscourse Dockerコンテナテンプレートです
##
## このファイルを変更した後は、必ず再構築してください
## /var/discourse/launcher rebuild app
##
## 編集は*非常に*注意してください!
## YAMLファイルは空白や配置の間違いに非常に非常に敏感です!
## 必要に応じてこのファイルを検証するには、http://www.yamllint.com/ を参照してください

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
## Lets Encrypt (https) を追加したい場合は、これらの2行をコメント解除してください
  - "templates/web.ssl.template.yml"
#  - "templates/web.letsencrypt.ssl.template.yml"
  - "templates/cloudflare.template.yml"

## このコンテナはどのTCP/IPポートを公開しますか?
## Apacheやnginxのような別のWebサーバーとDiscourseがポートを共有したい場合は、
## 詳細についてはhttps://meta.discourse.org/t/17247を参照してください
expose:
  - "80:80"   # http
  - "443:443" # https

[...]

/logs の抜粋

これが#installationに移動したのを確認しました。明確にしておくと、これは新規インストールではありません。

このDiscourseインスタンスは2023年3月から稼働しており、この特定の問題は発生したことがありません。

過去に529で問題が発生したことがありましたが、その後解決済みです。

これはまだ以下に適合すると考えられます。

「いいね!」 4

PostgreSQLが過負荷になっているようです。RAMのほとんどがアイドル状態のように見えますので、DBを調整してRAMを使用するようにし、その後の様子を見てはいかがでしょうか。

「いいね!」 1

/sidekiq/queues はどのようなものですか?
どのバージョンからアップデートしていましたか?

「いいね!」 1

最新の安定版である5月6日のv3.2.1から最新のtest-passedまで。

Sidekiqキュー:

Dead jobセクションはこれですが、最初から同じジョブのようです。

最も古いエントリ:

リトライ中のものは、同じジョブが何度もリトライされているようです。

しかし…なぜ突然? アプリケーションレイヤーのアップデート直後に?

Discourse Prometheus Exporterプラグインを使用しています。
VMに別のコンテナとしてPostgreSQL exporterを追加した場合、Discourse PostgreSQLインストールのメトリクスにアクセスできるようになりますか?

DiscourseのDBを微調整するための、より具体的な指示はありますか?

関連しているか分かりませんが、アップデート後に必ず発生するようになりました。未読タブの「閉じる」ボタンをクリックすると、常に503エラーが返されます。

まあ、解決策がないようなので、本来あるべき「安定」版である最新の stable に戻ってみます。

前回のように、コア依存関係がビルドプロセスを壊さないことを祈っています。https://meta.discourse.org/t/breaking-change-for-people-on-stable-versions-v3-2-1-and-down-with-discourse-docker/308680?u=crius

テストをパスした状態から stable に戻ることはできません。ただし、より新しい stable バージョンが利用可能な場合は別です。そのため、次の機会は 3.4.0 がリリースされるときになるでしょう。クリスマス頃か、それ以降になると思います。

それに、いつかは腹をくくる必要があります。

「いいね!」 1

まあ、ちょうどやったところです。動作しているようです。いずれにしても、3.3.0 の機能はどれも気にしていないので。

問題がまだあるかどうか見てみます。最悪の場合でも、429 と 502 が大量に発生するだけで、それほど大きな変化ではありません。

Postgres を Discourse で設定して、より多くのリソースを利用できるようにする方法について、ご教示いただけると幸いです。

編集: バージョン 3.2.5 をデプロイしました。システムは安定しているようです。

次の問題をご報告いただく際に、このことを思い出させてください :wink:

「いいね!」 1

問題報告の際は、常に自分がどのバージョンにいるかを明記しています。

オープンソースソフトウェアとして提供されているからこそ、このような発言をするのではなく、重大な問題は考慮されるべきだと考えます。

これは、人々がわざわざ「安定版」に切り替えて、あまり普及していないバージョンであるために見過ごされるバグに遭遇する、もう一つの例です。

「安定版」とは「安定版」を意味すべきであり、「レガシー」ではないはずです。

Discourse Docker のようなコア依存関係がタグシステムなしでプッシュされているという事実は、問題報告をしているユーザーへの対応において、もう少し謙虚になるには十分な理由になるはずです。

技術的にはできなかったダウングレードについて言及していたことについて話していました。

覚えておいていただきたいのは…私はDiscourseのために働いているわけではなく、自分の時間を使ってあなたを助けているということです。そのため、あなたの口調は評価できませんし、あなたのフィードバックに対して何もできません。

「いいね!」 2

「いいね!」 2