Сегодня я получил ошибку 502 на Meta. Помимо всплывающего окна, я не заметил никаких неожиданных сбоев. Я точно не знаю, что вызвало это, и мне не всегда удаётся воспроизвести проблему, но я смог спровоцировать её несколько раз.
Вот что я сделал:
Я нажал на значок «+» в боковой панели, чтобы открыть чат в личных сообщениях с человеком, с которым я уже общался ранее, но который сейчас отсутствует в моей боковой панели.
Я нажал кнопку полноэкранного режима чата.
Я уменьшил размер окна браузера.
Я снова развернул окно браузера на весь экран.
Я переключился из полноэкранного режима чата обратно в маленькое окно чата.
Это всё, что у меня есть. Надеюсь, кто-то сможет разобраться в этом лучше меня. Если это поможет, у меня есть видео, показывающее, как я воспроизвёл эту проблему.
В сериализаторе чат-группы использовался некорректный запрос для подсчёта пользователей с включённым чатом, и для вашего аккаунта его выполнение занимало около 30 секунд — это время истечения ожидания запроса на нашем хостинге (поэтому вы получали ошибку «случайно»)
Моя первая правка затронула лишь часть проблемы При поиске групп в фильтре чата выполнялся ещё один неэффективный запрос к базе данных. В зависимости от того, какие группы совпадали с вашим поисковым запросом, выполнение запроса могло занимать очень много времени — иногда превышая тайм-аут нашего запроса.
Интересно, что это влияло только на «обычных» пользователей, а не на «администраторов», поэтому я не мог воспроизвести проблему самостоятельно
При поиске групп результаты возвращаются в алфавитном порядке. Администраторы видят все группы, поэтому их первые 10 результатов для буквы «L» — это небольшие группы, начинающиеся на «a» (например, «ai-personas» и другие непубличные группы). У обычных пользователей видимость более ограничена, поэтому в их результаты попали крупные группы по уровням доверия , что и вызвало медленный запрос.