カスタムAPIのスロットル設定が高いにもかかわらず、カレンダービューで予期せぬレート制限が発生

説明

最近の Discourse の再構築(セルフホスト)の後、サイトの活動は非常に低い(同時ユーザー数 1〜2 人)にもかかわらず、メインのカレンダーを表示する際に一貫してユーザー向けのレート制限(429 エラー)に遭遇しています。この動作は、前回の 2 回の再構築後に現れ始めました。

私のレート制限設定(app.yml で設定):

  • DISCOURSE_MAX_ADMIN_API_REQS_PER_MINUTE: デフォルトの 4 倍
  • DISCOURSE_MAX_REQS_PER_MINUTE: デフォルトの 4 倍
  • DISCOURSE_MAX_REQS_PER_DAY: デフォルトの 4 倍
  • IP ごとのレート制限は指定されていません。

観察事項

  • /logs にエラーは表示されません。
  • リバースプロキシは使用していません(標準の Let’s Encrypt コンテナとドメインの A レコードのみ)。
  • カレンダービューのみが、この予期しないレート制限を引き起こしているようです。
  • ユーザーのアクティビティやカスタムプラグインに変更はありません。
  • これは最近の Discourse の再構築後にのみ発生しました。
  • 管理者 > ログは、インシデント発生時にクリーンです。

これまでのトラブルシューティング

  • カスタムレート制限設定が存在し、デフォルトを大幅に上回っていることを確認しました。
  • 複数のブラウザを試し、キャッシュをクリアしました。
  • 数個のイベントのみを含むテストカレンダーを作成しましたが、再現します。
  • meta.discourse.org のトピック は、アップグレード後にカスタム値を上書きする、文書化されていない追加の内部レート制限が存在する可能性があることを示唆しています。

参考資料


リクエスト

以下の点について、ご確認いただけますでしょうか。

  1. 最近のアップデート/再構築後に、バックグラウンドまたはプラグインによって生成されたリクエストに影響を与える可能性のある、新しいまたは隠されたレート制限器はありますか?もしある場合、それらを上書きまたは調整する方法を説明してください。
  2. カレンダービューで、私の高いカスタムレート制限が尊重されない理由を教えてください。
  3. 他に考えられるトラブルシューティングや設定変更があれば、提案してください。

よろしくお願いします!

これは Re-add full ics export - #9 by kelv に関連している可能性があります。なぜなら、100件のイベントが表示され、約2分後にさらに大量のイベントが表示されるようになり、それらは徐々にではなく、大きな塊で表示されるからです。

編集:このレート制限された動作は、今のところ管理可能ですが、先に進むと顕著になります。現在の週のすべてのイベントと次の週のすべてのイベントを確認できますが、次の週に進むとハードリミットに達します。

また、カスタムAPIスロットル設定を設定する前は、今後のイベントのフルカレンダーv6がこれほどレート制限されていなかったことも明確にしておく必要があります。これらの app.yml 設定は、FullCalendarで表示されるレート制限を変更しませんでした :wink:

@kelv さん、こちらを確認していただけますか?

これはまだ再現できます

現時点では再現できません。どのコミットを使用していますか?イベントはいくつありますか?

Discourse latest-release +369

Docker_manager 3e5ec72d

Bbcode 633030d8

Categories suppressed d5550658

Who’s online 3fe319b8

テーマとコンポーネント

デフォルト


[カテゴリバナー]

既存のカテゴリ詳細を使用して、カテゴリページにバナーを表示します。詳細はこちら

[クリック可能なトピック]

このテーマを編集したい場合は、リポジトリで変更を送信する必要があります

[カスタムヘッダーリンク(アイコン)]

このテーマを編集したい場合は、リポジトリで変更を送信する必要があります

[Discourse Gifs]

このテーマを編集したい場合は、リポジトリで変更を送信する必要があります

[インラインPDFプレビュー]

このテーマを編集したい場合は、リポジトリで変更を送信する必要があります

[リーダーモード]

このテーマを編集したい場合は、リポジトリで変更を送信する必要があります

来週は44件

来週以降は約40件がロードされます

FullCalendarがまともに動作するようになりました

たくさんあります。9月27日以降、MAX_RESULTS が制限を超えたと思います。イベントを表示するには、毎回フルカレンダーを更新する必要があります。

申し訳ありませんが、よくわかりません。カレンダーを操作しているビデオを作成していただけますか?

「いいね!」 1

PWAで

「いいね!」 1

429はどこですか?

APIのスロットリング設定について言及したとき、私の意図は、多くのイベントトピックを処理するようにDiscourseが設定されているにもかかわらず、FullCalendarビューが、コードがマージされる前ほどうまく機能していないということでした。

混乱させてしまい申し訳ありません。

編集:OPを編集して、429エラーがないことを反映させました。

最新バージョンを使用しています。UIの観点からは、この問題は一晩で自己解決しました。昨夜アップデートしましたが、問題はすぐに解決しませんでした。経過したイベントの総数は約270です。現在、PWAの使用に戻しました…

私のDiscourseインスタンスは現在最新の状態です。昨日、別のユーザーから、将来の週表示ですべてのイベントが読み込まれないという報告がありました。現在の週表示のUIには影響しないエラーであることにすでに気づいていたため、ラップトップでエラーを特定しようとしました。以下は、再現ビデオです。

再構築しましたが、現在の週から次の週に移動する際にこの問題が引き続き表示されます。

診断はできましたか?

Discourseの最新20コミットによるアップデートで、このバグが修正されました

更新していませんが、このバグが再び発生し始めました

編集:PWAに戻ったところ、バグは発生していませんでした

編集2:ラップトップのブラウザコンソールでまだエラーが発生しています。カレンダーは確認していません。