🥰Мой самый недавний краш.🥰
📆Недавно с нами случился абсолютный краш. Один из подконтрольных нашей команде сервисов вдруг начал сыпать ошибками. Сообщения в них говорили, что сервис не может достучаться по сети до базы, до редиса, до соседних сервисов. И вообще ему плохо и у него лапки 🐾.
🤔 Остальные сервисы на этой тачке при этом ходили исправно. Сервис был в кубере, посему решили поперазапускать его – авось починится. Но не починилось. Потом накинули ему подов, и все как-то не шатко не валко, но заработало. "Что за дерьмо?!" – подумали мы и разошлись.
🌚Вот вчерась оно снова повторилось. Но, к счастью, на этот раз мы уже предварительно смотрели в код и примерно понимали, где там могут быть проблемы. А проблемы, они в CancellationToken.
То есть кто-то приходит и кидает нам большой запрос к базе. Затем по таймауту в две минуты соединение отстреливается. В базе запрос не отменяется. Минус один коннект у коннекшн пула. Затем ситуация повторяется до победного – пока весь пул на поде не забьется. Вот так вот просто.
В итоге все это добро пожирало сначала коннекшн пул, а потом еще и потоки и CPU. Из-за чего и ответы от других сервисов не успевали обработаться, что и приводило к картине, будто вся сеть отключилась.
🅰️Мой вывод из этой ситуации. Если в асинхронный метод не проброшен CancellationToken, то нужно чтобы приложение просто не собиралось нахер.
А я пошел пробрасывать оные. Там дохера где надо. :🥲
UPD: А может и не только в токенах дело. Возможно старая бага Entity вылезла ¯\_(ツ)_/¯
UPD2: Тут на самом деле недавно у нас был пиздец какой краш. Сначала в стране, а потом и вдобавок система наебнулась на 4 часа. Но по этому крашу мне пока рассказать нечего.
А еще хочу добавить: Спасибо Грузии за то что помогает нам всем бежать от кровавого мудака и его войны! Сердечное спасибо 🧡
Сакартвелос гаумарджос! 🇬🇪 (Да здравствует Грузия!)
#трудовыебудни #опыт
Post #77
66
- 🔥 1