ジョブ例外: Holidays::InvalidRegion

Discourse のトラブルシューティングは初めてなので、どこから手をつけていいか分かりません。

これは約1ヶ月前に始まりました。現在、Job exception: Holidays::InvalidRegion が 4347 件発生しています。

/var/www/discourse/plugins/discourse-calendar/vendor/holidays/lib/holidays/finder/context/parse_options.rb:83:in `block in validate!'
/var/www/discourse/plugins/discourse-calendar/vendor/holidays/lib/holidays/finder/context/parse_options.rb:82:in `each'
/var/www/discourse/plugins/discourse-calendar/vendor/holidays/lib/holidays/finder/context/parse_options.rb:82:in `validate!'
/var/www/discourse/plugins/discourse-calendar/vendor/holidays/lib/holidays/finder/context/parse_options.rb:41:in `parse_regions!'
/var/www/discourse/plugins/discourse-calendar/vendor/holidays/lib/holidays/finder/context/parse_options.rb:20:in `call'
/var/www/discourse/plugins/discourse-calendar/vendor/holidays/lib/holidays/finder/context/between.rb:14:in `call'
/var/www/discourse/plugins/discourse-calendar/vendor/holidays/lib/holidays.rb:49:in `between'
/var/www/discourse/plugins/discourse-calendar/app/services/discourse_calendar/holiday.rb:14:in `find_holidays_for'
/var/www/discourse/plugins/discourse-calendar/jobs/scheduled/create_holiday_events.rb:68:in `block in execute'
/var/www/discourse/plugins/discourse-calendar/jobs/scheduled/create_holiday_events.rb:66:in `each'
/var/www/discourse/plugins/discourse-calendar/jobs/scheduled/create_holiday_events.rb:66:in `execute'
/var/www/discourse/app/jobs/base.rb:318:in `block (2 levels) in perform'
rails_multisite-7.0.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
rails_multisite-7.0.0/lib/rails_multisite/connection_management.rb:17:in `with_connection'
/var/www/discourse/app/jobs/base.rb:305:in `block in perform'
/var/www/discourse/app/jobs/base.rb:301:in `each'
/var/www/discourse/app/jobs/base.rb:301:in `perform'
/var/www/discourse/app/jobs/base.rb:381:in `perform'
mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:137:in `process_queue'
mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:77:in `worker_loop'
mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:63:in `block (2 levels) in ensure_worker_threads'

env

hostname	discourse-app
process_id	3072273
application_version	66f53ac5b9c7fdcd53868ccabac310b13ffc8910
current_db	default
current_hostname	discourse.------------.net
job	DiscourseCalendar::CreateHolidayEvents
problem_db	default
time	2:53 pm

opts

discourse-calendar プラグインは変更していません。

誰か、どこから始めればよいか教えていただけますか?

これは、ホリデー定義の最近の更新により、ユーザーの既存のカレンダー地域設定を更新せずに生成された地域リストが変更された可能性があるためです。

このエラーは、削除された地域を以前にカレンダー地域として選択したユーザーに発生します。

この例外が多く発生しているのは、これをトリガーするスケジュールされたジョブが10分ごとに実行されるためです。

生成された地域リストから地域を削除するホリデー定義の更新を考慮することで、これをより適切に処理する必要があります。

「いいね!」 1

面白いですね!ユーザーベースが非常に国際的であると言えるので、それは理にかなっているかもしれません。

  1. これについて私にできることは何もありません。
  2. それはあまり重要ではありません。
    それともバグレポートを作成する必要がありますか?

ありがとうございます

このトピックを Bug に移動しましたので、再度報告する必要はありません。

主要な地域を実際に削除していないため こちら 、問題は以下のような米国で見られるような州または準州レベルの地域定義に関連していると推測されます。

変更は、おそらく以下の 2 つのコミットの間で発生しました。

それは、内部をいじることに対するあなたの快適さのレベルによります。次のことを行う必要があります。

  1. カレンダー地域設定が有効になっているユーザーを特定します。
  2. それらの値のうち、現在の有効な地域のリストにないものを確認します。
    REGIONS.rb
  3. これらのユーザーの地域設定を、有効なトップレベルの地域に更新します。たとえば、United States (us_id) のような設定値は United States になるはずです。

サイトで祝日カレンダーイベントを使用している場合は重要です。影響を受けるユーザーの場合、カレンダー地域が修正されるまで、祝日イベントは生成されません。

「いいね!」 2

ありがとうございます。ご協力に感謝いたします。

内部のディスコースインスタンスでエラーが急増したため、同じ問題を調査していました。修正しました :wink:

「いいね!」 3

素晴らしい!ありがとうございます。