• Авторизация


Неочевидный отказ системы 01-09-2017 22:36 к комментариям - к полной версии - понравилось!


Вчера тихим сапом подкралась неприятность: неочевидный отказ системы доступа. [показать]

Неочевидный – потому, что вроде как все работает, все события мониторятся и пишутся в базу данных.
Отказ – потому, что конфигурацию обновить невозможно, любая попытка завершается сообщением об ошибке.

 

1. Перезапустил сервис, не помогло.

2. Начал работать с лог-файлами приложения, нашел повторяющиеся записи:

2017-MM-DD hh:mm:ss,264 [33] ERROR .........Hardware.Manager.......HardwareManager
Func: Dispose   Dev: CommLine  Msg: Disposing TCP Connection. IP=XXX.XXX.XXX.XXX:XXX

Явно указан характер сообщения: Error, указана причина: разрыв соединения.

3. Виновата сеть?

Да, работы с сетью проводятся, меняется оборудование и топология, вводятся новые политики.

Потратили с коллегой немало времени, но пришли к общему мнению – сеть не виновата.

4. Рушится сокет?

Исследовал лог-файлы операционной системы – никаких намеков на неприятности.
Не то.

5. Виноваты апдейты?

Проверил и уверен, что в этот раз апдейты не виноваты.

6. Проблемы с лицензией софта?

Снес лицензии, установил и снова активировал, а проблема осталась.

7. Обратился в суппорт,

отправил скриншоты, лог-файлы, открыл суппорту доступ к серверу. Подключились, стали смотреть. Неглубоко. Пришлось доказывать, что сеть не причем: состояние соединений (netstat –an) и записи в логах. И тут я увидел то, на что раньше внимания не обратил:

2017-MM-DD hh:mm:ss,168 [5] ERROR ....Hardware.Manager.....HardwareManager Func: ....OperationQueue.ExecuteAll  
 Dev: 13  Msg: General error
Exception :
System.FormatException: Input string was not in a correct format.
   at System.Number.StringToNumber(String str, NumberStyles options,
       NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
   at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
   at ....Hardware.Controllers.V7.....V7Controller.SetData(List`1 users,
       Dictionary`2 intervals, List`1 automaticFunctions, List`1 holidays, Boolean
       reset, OnProgress callbackOnOperationProgress, Boolean sendTables)
   at ....Hardware.Manager.....OperationSetData.Do(I....Controller controller)
   at ....Hardware.Manager.....OperationBase.ExecuteOn(I....Controller controller)
   at ....Hardware.Manager.....OperationQueue.ExecuteAll(ControllerContainer cc)

Стало ясно, что проблема в приложении, что подготовка данных для отправки завершается ошибкой, после чего и соединение разрывается. Характер сообщения почти прямо указывает на ошибку в данных.

Суппорт переправил проблему производителю системы, а я продолжил искать.

8. Проблемы с базой данных?

Остановил сервис и тотально проверил все базы данных на сервере (системные и данные):

mysqlcheck –c –u root –p –all-databases

Проблем не обнаружено.

9. Если проблема с данными, то как проверить?

Старая истина: в правильно поставленном вопросе содержится до 50% ответа!

Создаю новый обьект, подключаю и конфигурирую новый контроллер. Для начала определяю, что доступ никому не разрешен.

Проверка и тут-же предчуствие успеха: данные доставлены!

Создаю нового пользователя и разрешаю доступ к новому обьекту: данные доставлены!  

Начинаю проверять существующие группы: одна из групп приводит к ошибке.
Далее проверяю пользователей из этой группы, метод дихотомии мне в помощь. Очень быстро обнаруживаю проблемного пользователя. Распечатываю его профиль, удаляю из системы и создаю заново.

Работоспособность восстановлена!


Отзвонил в суппорт: там не поняли (или я не сумел внятно донести) мои методы, но обрадовались успеху. Сказали, что обязательно дождутся ответа от производителя. Мне это самому интересно.

Пятница, вечер: неделя завершилась позитивно.

вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник Неочевидный отказ системы | a1addin - Письма себе | Лента друзей a1addin / Полная версия Добавить в друзья Страницы: раньше»