无效的用户时区导致其邮件堵塞

如果用户的时区无效,至少有一个 sidekiq 作业会抛出异常,而不是回退到合理的默认值:

在这种情况下,用户的时区被设置为 ""(空字符串)。

我们不应该允许这种情况发生,如果发生,则选择一个合理的备用值(UTC)。

3 个赞

我们在这些电子邮件中考虑了 nil 时区,但没有考虑 \"\" 值。

此实例中存在其他问题,导致用户的时区被设置为 \"\",但我们应该确保电子邮件不会因无效时区而失败。

在此处添加了一个 PR:FIX: Ensure invalid timezone does not block critical emails by pmusaraj · Pull Request #26607 · discourse/discourse · GitHub

另外,元数据:

[1] pry(main)> UserOption.where(timezone: '').count
=> 17

(另一个网站):

[1] pry(main)> UserOption.where(timezone: '').count
=> 6