502 错误 - 可能是因为调整浏览器窗口大小

我今天在 Meta 上遇到了 502 错误。除了弹出窗口之外,我没有注意到任何意外行为。我不太确定是什么原因造成的,并且无法稳定地重现它,但我确实成功触发了几次。

以下是我的操作步骤:

  1. 我使用了侧边栏中的“+”号打开了与我之前聊过但目前不在我侧边栏中的某人的私信(DM)聊天。
  2. 我使用了全屏聊天按钮。
  3. 我更改了浏览器窗口的大小,使其变小。
  4. 我再次将浏览器窗口设为全屏。
  5. 我从全屏聊天切换回小聊天窗口。
  6. 大约 7 秒后,我看到了
    image

浏览器控制台显示:
image

这就是我所能提供的全部信息。我希望有人能从中得到比我更多的信息。如果对你有帮助,我有一个视频展示了我是如何重现这个问题的。

1 个赞

也许是由于这个步骤造成的?当您在该聊天过滤器中搜索某人时,是否可能会发生这种情况?
image

1 个赞

我认为我找到了需要重现的步骤:当我在聊天过滤器中输入“L”时,错误大约在 30 秒后出现

2 个赞

在聊天组序列化器中,有一个错误的查询被用来返回启用了聊天的用户数量,这在您的账户上大约需要 30 秒,超出了我们托管的请求超时时间(这就是您“随机”收到它的原因)。

3 个赞

嗯,我看到它已经被合并了。那是不是意味着错误不应该再发生了?

如果我的根本原因分析是正确的,是的 :sweat_smile:

它仍然在发生吗?

它确实会,只是频率可能较低。很奇怪;有时需要几秒钟用户才会被显示,有时则会失败。

:sad_but_relieved_face:

发生时,你能展示一下网络的“网络”选项卡和那个耗时长的请求吗?

唉。你问这个问题,就好像这只需要点两下鼠标一样。

我会试试看的。

我说的有时需要几秒钟,有时会失败就是这个意思:

image

好的,我弄明白了 :sweat_smile:

我的第一个修复只解决了一部分问题 :man_facepalming: 聊天过滤器中搜索群组时还存在另一个低效的数据库查询。根据哪些群组与您的搜索词匹配,查询可能需要很长时间才能完成——有时会超过我们的请求超时时间。

有趣的是,这只影响了“普通”用户,而不影响“管理员”,这就是我无法自行重现的原因 :thinking:

搜索群组时,结果按字母顺序返回。管理员可以看到所有群组,所以他们搜索“L”的前 10 个结果是小的、以“a”开头的群组(如“ai-personas”和其他非公开群组)。普通用户的可见性更有限,所以他们的结果中包含了大型的信任等级群组 :grimacing:,这就是导致查询缓慢的原因。

普通用户看到:

  • 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 用户需要加载 :collision:

管理员看到:

  • a*****: 4 用户
  • a*****: 76 用户
  • a*****: 0 用户
  • a*****: 2 用户
  • ai-personas: 138 用户
  • 等等。

总计:~240 用户需要加载 :relieved:

1 个赞

为什么搜索“L”会返回该组?

只是我自己在“匿名化”数据时失败并想出了一个例子 :man_facepalming:

1 个赞

该团体的全称中包含一个 L,所以我不太确定那是否是原因,还是一个随机的例子。