オフのチャットで `chat_sound` という未定義のメソッドが見つかりました

この件は非標準のインストールであるため、Bug に移動するのは後回しにします。ただし、イメージはランチャーでビルドされ(その後、ロードバランサーの後ろにあるECSのFargateで起動)、この問題はインストールが原因ではない可能性が高いと思われます。とはいえ、このサイトには多くの奇妙な点がありますが、他の人にとっても問題になる可能性がある場合に備えて、この件を報告しておきます。

管理者リンクでログインしようとすると、次のエラーが表示されます。

Started POST "/session/email-login/657e8390c8dec98db8cac2feaef96dcf" for 98.46.117.40 at 2022-11-08 18:46:08 +0000
Processing by SessionController#email_login as */*
  Parameters: {"second_factor_method"=>"1", "timezone"=>"America/Chicago", "token"=>"657e8390c8dec98db8cac2feaef96dcf"}
Completed 500 Internal Server Error in 107ms (ActiveRecord: 0.0ms | Allocations: 18703)
NoMethodError (undefined method `chat_sound' for #<UserOption:0x00007f748870c1d8>)
(eval):39:in `_fast_attributes'
lib/freedom_patches/ams_include_without_root.rb:57:in `include!'
app/models/web_hook.rb:109:in `generate_payload'
app/models/web_hook.rb:63:in `enqueue_object_hooks'
config/initializers/012-web_hook_events.rb:54:in `block (2 levels) in <main>'
lib/discourse_event.rb:14:in `block in trigger'
lib/discourse_event.rb:13:in `trigger'
app/models/email_token.rb:71:in `block in confirm'
app/models/email_token.rb:57:in `confirm'
app/controllers/session_controller.rb:373:in `email_login'
app/controllers/application_controller.rb:413:in `block in with_resolved_locale'
app/controllers/application_controller.rb:413:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:368:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:202:in `call'

コンテナに入り、cd /var/www/discourse/plugins;rm -rf chat; sv restart unicorn を実行したところ、ログインできるようになりました。

データベースが移行されたことを確認しました(ただし、移行される前にしばらく実行されていました)。また、Retort プラグインが以前はインストールされていましたが、現在はインストールされていません。

チャットが無効になっていたため、他の人がこの問題を再現できる場合、修正するには実行中のコンテナを変更する必要があるため、非常に深刻なバグのように思えます。

このイメージは1時間ほど前にビルドしました。 <meta name="generator" content="Discourse 2.9.0.beta11 - https://github.com/discourse/discourse version d2ea39c932ec3ec07cbb7362c64ff3fb97c54a4a">

user_options テーブルに chat sound があるのを確認しました。また、rails から実行すると u.user_option.chat_sound は nil を返します(ただし、これはプラグインを削除した後です)。

そのような話は聞いたことがありません。これを掘り下げる前に、別の報告を待つかもしれません。

「いいね!」 1

それでいいですね。明日、新しいイメージをビルドして起動し、もう一度発生させることができるか確認します。

「いいね!」 1

ありがとうございます!それは助かります!

「いいね!」 1

まあ、何であれ、それは消えました。:person_shrugging:

今朝同じイメージをプッシュしたところ、うまくいきました。データベースが完全に移行されていなかったか何かだったのかもしれませんが、数分間は本当にひどい状態でした。

「いいね!」 1

確認ありがとうございます!

「いいね!」 1

またしてもオオカミが来たと言って泣いたので、できる限りのことをしました。

「いいね!」 1

心配いりません。実際に何か問題が発生した可能性もあります。ここ数日、一部のマイグレーションでエラーが発生していたため、それがこの期間中に問題を引き起こしていたのかもしれません。

「いいね!」 1