我将等待将此移至 Bug,因为这是一个非标准安装,但映像是使用 launcher 构建的(然后在 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 插件曾经在这里安装过(但现在没有了)。
聊天已禁用,所以看起来如果其他人可以复制此问题,这似乎是一个非常糟糕的错误,因为唯一修复它的方法是修改正在运行的容器。
我大约一小时前才构建了这个映像。 <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(哦,但那是在我删除插件之后)。