🕵️Как мы ловили баг в проде, который появлялся только ночью
Пролог Иногда баги ведут себя как призраки. Днём — идеальный прод. Ночью — ошибка в биллинге. Каждый день в одно и то же время. 02:47.
Начало охоты Первая гипотеза — перегрузка. Но сервер в порядке. Вторая — крон-задача. Тоже нет. В логах — тишина. API отвечает как часы. На третий день я уже смотрела на монитор, как на загадку из «Твин Пикс».
Следы Я пошла по цепочке микросервисов: Auth → Betting → Billing. Запросы шли нормально… до момента, пока один сервис не возвращал странный timestamp. Всё ломалось именно в момент пересчёта даты.
Развязка Оказалось, один микросервис жил в UTC, другой — в GMT+3. В момент синхронизации ночью время «уходило в прошлое» — и логика биллинга просто не понимала, в каком дне она живёт. Исправили часовой пояс — и всё стало спокойно.
Мораль QA — это не профессия, а профессия детектива. Иногда ты не просто тестируешь — ты расследуешь. А логи — твои улики.
· 15.11.2025
Почему ошибка происходила каждый раз именно в 2:47, разве между UTC и GMT+3 разница не ровно в 3:00? Второй момент, у UTC разве нет отклонений как в GMT?
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён
· 15.11.2025
Она у нас стартовала в 02:47, и именно в этот момент два микросервиса по-разному обрабатывали время:
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён