# 组概述中用户数量不正确

**URL:** https://meta.discourse.org/t/incorrect-number-of-users-in-the-groups-overview/169968
**Category:** Support
**Created:** [2020年十一月12日 19:20 UTC](https://meta.discourse.org/t/incorrect-number-of-users-in-the-groups-overview/169968 "2020-11-12T19:20:54Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![GuidoD](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/guidod/32/292621_2.png) [@GuidoD](https://meta.discourse.org/u/GuidoD)
#### Post date: [2020年十一月12日 19:20 UTC](https://meta.discourse.org/t/incorrect-number-of-users-in-the-groups-overview/169968/1 "2020-11-12T19:20:54Z")

</div>

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

 ![grafik](https://global.discourse-cdn.com/meta/original/3X/b/a/ba4125a73e6071b741207d31a77af23cf41580ee.png)

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

 ![grafik](https://global.discourse-cdn.com/meta/original/3X/a/7/a7cd597e0c4dbb399a56332231b67b0dac5a0835.png)

信任等级 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](https://github.com/discourse/discourse/commits/698b7ace1032d47f3d2dee1477f3fa50595f353c)），但这个问题可能早在旧版本中就已存在。

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [2020年十一月12日 23:39 UTC](https://meta.discourse.org/t/incorrect-number-of-users-in-the-groups-overview/169968/2 "2020-11-12T23:39:29Z")

</div>

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

> <https://github.com/discourse/discourse/blob/0cf9a643c1835ac105905aaf2da208e700fca5ad/app/models/group.rb#L470-L474>

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

> <https://github.com/discourse/discourse/blob/0cf9a643c1835ac105905aaf2da208e700fca5ad/app/jobs/scheduled/ensure_db_consistency.rb#L6-L6>

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

---

<div class="post-metadata">

### Author: ![GuidoD](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/guidod/32/292621_2.png) [@GuidoD](https://meta.discourse.org/u/GuidoD)
#### Post date: [2020年十一月13日 14:30 UTC](https://meta.discourse.org/t/incorrect-number-of-users-in-the-groups-overview/169968/3 "2020-11-13T14:30:01Z")

</div>

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

 ![grafik](https://global.discourse-cdn.com/meta/original/3X/b/0/b09d41014bcf9d9c138f3fab1401b8a6d6a7105c.png)

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

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

 ![grafik](https://global.discourse-cdn.com/meta/original/3X/3/c/3cfccf3b70b145a604a175a34ff3524ba6dc4436.png)

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

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [2020年十一月16日 03:49 UTC](https://meta.discourse.org/t/incorrect-number-of-users-in-the-groups-overview/169968/4 "2020-11-16T03:49:39Z")

</div>

> [@GuidoD](#):
>
> 只需手动执行 SQL 语句，删除 **group\_users** 表中那些在 **users** 表中没有对应条目的记录吗？

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

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

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

```

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

---

<div class="post-metadata">

### Author: ![GuidoD](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/guidod/32/292621_2.png) [@GuidoD](https://meta.discourse.org/u/GuidoD)
#### Post date: [2020年十一月16日 11:04 UTC](https://meta.discourse.org/t/incorrect-number-of-users-in-the-groups-overview/169968/5 "2020-11-16T11:04:42Z")

</div>

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

---

<div class="post-metadata">

### Author: ![GuidoD](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/guidod/32/292621_2.png) [@GuidoD](https://meta.discourse.org/u/GuidoD)
#### Post date: [2020年十一月17日 14:28 UTC](https://meta.discourse.org/t/incorrect-number-of-users-in-the-groups-overview/169968/6 "2020-11-17T14:28:51Z")

</div>

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

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [2020年十一月18日 22:45 UTC](https://meta.discourse.org/t/incorrect-number-of-users-in-the-groups-overview/169968/7 "2020-11-18T22:45:39Z")

</div>


