Ответ вслух Middle Коды ответа обновлено

Как разбираешь 5xx

Вопрос

На тесте API вернуло 502. Как ты будешь разбираться и что напишешь в баг-репорте?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Первое, что я делаю, это понимаю, кто ответил. 502 обычно отдаёт прокси, например nginx, когда бэкенд упал, перезапускается или вернул что-то нечитаемое.

Что должно прозвучать в ответе

  • Различаю 500 (ошибка приложения), 502 (прокси не получил нормальный ответ), 503 (сервис недоступен), 504 (таймаут шлюза)

  • Повторяю запрос, чтобы понять, стабильно или плавает

  • Ищу запрос в логах прокси и приложения по времени и request id

  • Проверяю, жив ли сервис: health-check, перезапуски контейнера

  • В баге: curl запроса, время, окружение, код и тело ответа, request id, частота воспроизведения

Что могут спросить следом

  • Что такое request id и где его взять?
  • Чем 502 отличается от 504 по причине?
  • Что делать, если ошибка плавающая?

Разбор

Первое, что я делаю, это понимаю, кто ответил. 502 обычно отдаёт прокси, например nginx, когда бэкенд упал, перезапускается или вернул что-то нечитаемое. 504 тоже от прокси, но про таймаут: бэкенд думал слишком долго. 500 отдаёт само приложение. Потом повторяю запрос несколько раз: стабильная ошибка или плавающая. Дальше ищу этот запрос в логах по времени и по request id или trace id из заголовков ответа: в логах nginx видно, что upstream закрыл соединение, в логах приложения может быть исключение или перезапуск по нехватке памяти. Проверяю health-check и не перезапускался ли контейнер. В баг-репорт кладу curl запроса, окружение, точное время, код и тело ответа, request id, частоту воспроизведения и выдержку из логов, если нашёл.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.