Завалить сервак
Если бы строители строили дома так же,
как программисты пишут программы,
первая же залетевшая муха
разрушила бы цивилизацию.
как программисты пишут программы,
первая же залетевшая муха
разрушила бы цивилизацию.
Оказывается, очень просто завалить.
Есть виртуалка, на ней крутятся два процесса, каждый обрабатывает свой пул каких-то заданий.
Один процесс падает, висит в оперативке в качестве сервиса, но он мертвый, от слова совсем. Оказывается, мертв он уже сутки. Удаленный рестарт не проходит. Лезем на виртуалку, рестарт сервиса руками, сессия сервиса в БД не появляется, в логах ересь:
'Да' не является доступной опцией, доступные опции 'No', 'Yes'.
Т.е. сервис валится еще до попытки подключиться к БД, значит, дело не в программном коде заданий, хотя и туда отрядили уже человека поглядеть, что там могло измениться.
Лазаем по настройкам сервиса, все ini файлы менялись прорву лет назад. Лезем в региональные настройки аккаунта, под которым запущен сервак --- все ОК. Соседний сервис настроен абсолютно идентично. От отчаяния проверяем права на SQL -- все норм, попыток сбойных коннектов в логах на скуле нет. Я начинаю медленно сатанеть -- курить прорву кода, который был залит накануне категорически не хочется.
И тут меня осеняет.
Вчера один йуный падаван финализировал свою разработку, которая должна была крутиться именно под этим сервисом. Поскольку эксплуатация новинки опытно-промышленная и критически зависит от инфраструктуры развернутой на виртуалке, допилы напильником происходили на промышленном окружении и под аккаунтом этого самого сервиса. Лезу в папку Appdata юзера, и вуаля, валяется какой-то странный xml файлик, который содержит...
Барабанная дробь...
Информацию о точке останова при дебаге. Помимо всего, там было указание, что точка активна:
<Enabled>Да </Enabled>
Исправили Да на Yes -- все заработало.
В итоге, потрачено 7,5 человеко-часов, выделена прорва адреналина и словлен полный ахрен у всех причастных к поиску проблемы.