Moin
1
我今天在 Meta 上遇到了 502 错误。除了弹出窗口之外,我没有注意到任何意外行为。我不太确定是什么原因造成的,并且无法稳定地重现它,但我确实成功触发了几次。
以下是我的操作步骤:
- 我使用了侧边栏中的“+”号打开了与我之前聊过但目前不在我侧边栏中的某人的私信(DM)聊天。
- 我使用了全屏聊天按钮。
- 我更改了浏览器窗口的大小,使其变小。
- 我再次将浏览器窗口设为全屏。
- 我从全屏聊天切换回小聊天窗口。
- 大约 7 秒后,我看到了

浏览器控制台显示:

这就是我所能提供的全部信息。我希望有人能从中得到比我更多的信息。如果对你有帮助,我有一个视频展示了我是如何重现这个问题的。
1 个赞
Moin
2
也许是由于这个步骤造成的?当您在该聊天过滤器中搜索某人时,是否可能会发生这种情况?

1 个赞
Moin
3
我认为我找到了需要重现的步骤:当我在聊天过滤器中输入“L”时,错误大约在 30 秒后出现
2 个赞
在聊天组序列化器中,有一个错误的查询被用来返回启用了聊天的用户数量,这在您的账户上大约需要 30 秒,超出了我们托管的请求超时时间(这就是您“随机”收到它的原因)。
3 个赞
Moin
6
嗯,我看到它已经被合并了。那是不是意味着错误不应该再发生了?
Moin
8
它确实会,只是频率可能较低。很奇怪;有时需要几秒钟用户才会被显示,有时则会失败。

发生时,你能展示一下网络的“网络”选项卡和那个耗时长的请求吗?
好的,我弄明白了 
我的第一个修复只解决了一部分问题
聊天过滤器中搜索群组时还存在另一个低效的数据库查询。根据哪些群组与您的搜索词匹配,查询可能需要很长时间才能完成——有时会超过我们的请求超时时间。
有趣的是,这只影响了“普通”用户,而不影响“管理员”,这就是我无法自行重现的原因 
搜索群组时,结果按字母顺序返回。管理员可以看到所有群组,所以他们搜索“L”的前 10 个结果是小的、以“a”开头的群组(如“ai-personas”和其他非公开群组)。普通用户的可见性更有限,所以他们的结果中包含了大型的信任等级群组
,这就是导致查询缓慢的原因。
普通用户看到:
- trust_level_0: 62,506 用户
- trust_level_1: 34,494 用户
- trust_level_2: 4,727 用户
- trust_level_3: 39 用户
- trust_level_4: 13 用户
- 加上一些更小的群组
总计:~102,000 用户需要加载 
管理员看到:
- a*****: 4 用户
- a*****: 76 用户
- a*****: 0 用户
- a*****: 2 用户
- ai-personas: 138 用户
- 等等。
总计:~240 用户需要加载 
1 个赞
Moin
15
该团体的全称中包含一个 L,所以我不太确定那是否是原因,还是一个随机的例子。