Четверта кава. Годинник показує 2:37 ночі. Монітор немилосердно світить в очі, а графіки моніторингу розповідають історію, яку я волів би ніколи не бачити. Десь там, в нетрях нашого коду, причаїлася помилка. Підступна, хитра, невловима.
Все почалося після вчорашнього релізу. Здавалося б, звичайне оновлення - пара нових фіч, рефакторинг старого коду, нічого надзвичайного. Тести пройшли успішно, код ревю було бездоганним. Але щось пішло не так.
Спочатку це були поодинокі повідомлення про дивну поведінку системи. Потім - графік латентності почав нагадувати кардіограму після марафону. А тепер... тепер я сиджу тут, намагаючись зрозуміти, де саме ми припустилися помилки.
Логи мовчать, як партизани на допиті. Метрики показують проблему, але не її причину. Я вже перевірив всі останні зміни, продивився кожен PR, навіть підняв локально стару версію для порівняння. Безрезультатно.
Найгірше в цьому всьому - відчуття безпорадності. Ти знаєш, що десь є відповідь. Можливо, вона прямо перед носом. Можливо, це щось настільки очевидне, що ти просто не помічаєш. Як той баг, який одного разу виявився пропущеною крапкою з комою. Але зараз... зараз все складніше.
У Slack вже створено тред довжиною в "Війну і мир". Команда підтримки строчить тікети швидше, ніж я встигаю їх читати. А я все ще тут, намагаюсь розплутати цей клубок.
Можливо, час визнати поразку і відкотити реліз? Але ж це означатиме втрату всіх нових функцій, над якими команда працювала останні два тижні. Та й хто сказав, що проблема точно в останньому релізі? Що як це просто збіг обставин, і відкат нічого не вирішить?
П'ята кава. 3:15. Очі вже пече, але здаватися не можна. Десь там, серед тисяч рядків коду, ховається відповідь. І я її знайду. Навіть якщо доведеться просидіти тут до ранку.
Бо такий він - життя інженера. Іноді ти герой, що рятує продакшн одним комітом. А іноді - детектив, що намагається розкрити загадку підступного бага, який не хоче показуватися на очі.
P.S. Якщо хтось читає це о 3:30 ночі, намагаючись знайти схожу проблему - тримайся, колего. Ми всі через це проходимо. І так, перевір кеш. Це завжди може бути кеш.