组概述中用户数量不正确

Somehow 组概览中信任等级 0-4 显示的数字有误(偏高)。
我们目前只有 439 名用户(加上系统用户和 discobot)。(过去我们拥有更多用户)
但组概览显示:

点击组概览中的信任等级 0 后,显示的数字则是正确的:

信任等级 0:概览显示 557,但实际为 439
信任等级 1:概览显示 480,但实际为 412
信任等级 2:概览显示 300,但实际为 298
信任等级 3:概览显示 37,但实际为 35
信任等级 4:概览显示 4,但实际为 2

执行 select count(*) from users 也返回 441,与 439 + 系统用户 + discobot 相符。

组概览中其他所有组显示的数字似乎都是正确的。

我该如何修正概览中的这些数字?

我们当前使用的是版本 2.6.0.beta5(698b7ace10),但这个问题可能早在旧版本中就已存在。

数字会定期修正,偶尔会出现不同步的情况。

等待最多 12 小时,系统会自动修复。

您的安装环境中 Sidekiq 是否正常运行?您最近是否删除了大量用户?

即使过了 12 小时,数据仍然不正确:从信任等级 0 到信任等级 4 的所有值都只减少了 2(原因不明)。其他所有群组计数器似乎都是正确的。

不,最后一次删除用户已经是两天前的事了。
在过去 14 天里,我只删除了 7 个用户。
在过去 1.5 年中,我删除了超过 2000 个用户。我们部署了插件 autosuspend,会自动暂停超过 365 天无活动的用户。对于这些自动暂停的用户及其所有数据,我至少每周删除一次,以确保符合欧盟 GDPR 要求。

Sidekick 运行正常,没有死任务。
据我记忆,过去几天出错的作业数量也没有变化。
队列 0f13eb003564dea87a7cc8f25560ba0e 是做什么用的?
这个队列是必需的吗,还是应该删除它?

我想我找到问题了:group_users 表中仍然保留着一些 user_id 的记录,但这些用户已不存在,且在 users 表中也没有对应条目。(总共有 182 条记录涉及 117 个 user_id,它们在 users 表中没有对应项。)
因此,数据库存在一些不一致的情况。我不清楚这是如何发生的。
现在的问题是:我该如何解决?
是否只需通过 SQL 语句手动删除 group_users 表中那些在 users 表中没有对应条目的记录?

是的,不过我不清楚你是怎么进入这种状态的,也许是某次迁移或其他操作导致的?

删除操作是完全安全的(不过和所有类似操作一样,请先备份数据库)。

./launcher enter app
rails c
DB.exec("delete from group_users where user_id not in (select id from users)")

如果你能找到一致的复现步骤,我非常希望能修复这个问题。

感谢您的回答,我刚刚执行了删除操作,待下一次概览更新完成后会再次检查。

现在看起来没问题了,案子已结。