ジョブ例外: 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. それはあまり重要ではありません。
    それともバグレポートを作成する必要がありますか?

ありがとうございます

このトピックは #contribute:bug に移動しましたので、再度レポートを作成する必要はありません。

こちら の主要な地域定義を私たちが実際に削除したわけではないため、問題は以下に示す米国のような、州または準州レベルの地域定義に関連している可能性があります。

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

これは、内部構造をいじることにどの程度慣れているかによります。以下の手順が必要です:

  1. カレンダー地域 の設定がされているユーザーを特定する。
  2. その設定値のうち、現在の有効な地域リストに含まれていないものを確認する:
    REGIONS.rb
  3. 該当ユーザーの地域設定を、有効な上位レベルの地域に更新する。例えば、United States (us_id) のような設定は United States に変更する。

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

「いいね!」 2

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

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

「いいね!」 3

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