Добавить в корзинуПозвонить
Найти в Дзене
#ПоварВ IT

Я три дня искал баг, перерыл всё, а оказалось… кэш. Честная история

Это было в мой первый месяц работы. Приходит задача: у пользователей не отображаются новые цены в каталоге. Обновляют страницу — видят старые. Я проверил: у меня на тестовом стенде всё ок. У разработчика — тоже ок. А у реальных пользователей — беда. Начал расследование. День 1. Проверил базу данных — цены актуальные. Посмотрел логи — ошибок нет. Думал, может, кэш на сервере? Перезапустил — без изменений. День 2. Сел за компьютер пользователя (удалённо). Очистил кэш браузера — и о чудо, цены обновились! Значит, проблема на клиенте. Но почему? Ведь у других сайтов такого не было. День 3. Копнул глубже. Оказалось, что сервер отдавал заголовки с очень долгим временем жизни кэша (Cache-Control: max-age=604800 — целая неделя!). Браузер просто не запрашивал новые данные. Я нашёл баг, но виноват был не код, а настройки сервера. ,,3Баг может прятаться где угодно: в кэше браузера, в настройках CDN, в редисе, в том, что разработчик забыл выключить «режим бога» у себя локально. Главное — не сдават
Оглавление

Это было в мой первый месяц работы. Приходит задача: у пользователей не отображаются новые цены в каталоге. Обновляют страницу — видят старые. Я проверил: у меня на тестовом стенде всё ок. У разработчика — тоже ок. А у реальных пользователей — беда.

Начал расследование.

День 1. Проверил базу данных — цены актуальные. Посмотрел логи — ошибок нет. Думал, может, кэш на сервере? Перезапустил — без изменений.

День 2. Сел за компьютер пользователя (удалённо). Очистил кэш браузера — и о чудо, цены обновились! Значит, проблема на клиенте. Но почему? Ведь у других сайтов такого не было.

День 3. Копнул глубже. Оказалось, что сервер отдавал заголовки с очень долгим временем жизни кэша (Cache-Control: max-age=604800 — целая неделя!). Браузер просто не запрашивал новые данные. Я нашёл баг, но виноват был не код, а настройки сервера.

Что я понял

-2

,,3Баг может прятаться где угодно: в кэше браузера, в настройках CDN, в редисе, в том, что разработчик забыл выключить «режим бога» у себя локально.

Главное — не сдаваться. Систематически проверять каждый слой: клиент, сервер, база, кэш. И всегда просить у пользователя шаги воспроизведения — иногда ответ лежит на поверхности.

Сейчас я так и работаю

Если баг не воспроизводится — я начинаю с самого простого: прошу почистить кэш, сменить браузер, попробовать в режиме инкогнито. В 50% случаев это помогает.

А если нет — тогда иду глубже: логи, дампы, запросы к разработчикам.

А теперь вопрос к вам

А у вас был баг, который оказался «призраком»? Кэш, сессия, особенности окружения?
Делитесь — я свой трёхдневный кошмар уже рассказал

P.S. Если хотите продолжение — разберу, как искать баги в кэше и какие инструменты для этого использовать.