История одного расследования «синего экрана» на серверной ОС. У клиента периодически начал перезагружаться сервер 1С. Физическая машина в локальной сети. Нас попросили проверить, в чем дело.
Эти зависания доставляли неудобства в работе. В принципе, мешали делу, а пользователи содрогались при виде ошибки на своих экранах.
Система Windows Server 2008 R2 Standard (x64) Service Pack 1
На сервере был установлен признак «Выполнить автоматическую перезагрузку» при отказе системы.
Сервисы возвращались в строй через несколько минут, но сохранялся риск потери данных. Сам по себе факт системного отказа — тревожный момент и требует внимания.
Изучение и просмотр журналов
По фильтрам быстро вышли на код ошибки — 0x000000d1. Само событие записано в таком виде:
Компьютер был перезагружен после критической ошибки. Код ошибки: 0x000000d1 (0x0000000000000000, 0x0000000000000002, 0x0000000000000000, 0xfffff88007285006). Дамп памяти сохранен в: C:\Windows\MEMORY.DMP.
Описание ошибки: DRIVER_IRQL_NOT_LESS_OR_EQUAL. Если упрощенно — ошибка вызвана обращением драйвера к памяти.
Стандартные шаги
В командной строке от имени администратора. Для выполнения или завершения операций может потребоваться перезагрузка сервера.
- Проверка оперативной памяти на предмет неполадок (mdsched.exe).
- Проверка диска на ошибки (chkdsk c: /f).
- Проверка целостности системных файлов (sfc /scannow).
В нашем случае эти проверки были завершены. Но результата не дали.
Анализ дампа MEMORY.DMP
Мы использовали средство отладки WinDbg (входит в состав «Пакет SDK для Windows 10»), которое показало на файл termdd.sys. Один из драйверов протокола удаленного рабочего стола (RDP).
TermDD — аббревиатура от Terminal Desktop Server Driver.
Следующая утилита MiniDumper подсказала кое-что другое и вывела на сторонний модуль IDSvia64.sys.
Ответ программы после анализа:
Дамп: MEMORY.dmp (16.03.2021 11:03:59)
Код: 0xD1 - DRIVER_IRQL_NOT_LESS_OR_EQUAL
Процесс: System, вероятно вызвано: termdd.sys
Сторонние модули в Raw-стеке: IDSvia64.sys
FAILURE_BUCKET_ID: X64_0xD1_termdd!IcaChannelInputInternal+1f2
Файл IDSvia64.sys, как мы поняли, отвечает за систему предотвращения вторжений из комплекта антивирусного ПО Symantec.
Находился в одном из каталогов, название которого указывало на дату обновления. Т. е. он был загружен совсем недавно. С той поры, когда и начались сбои.
Странные моменты:
- при развертывании Symantec Endpoint Protection этот компонент специально не выбирался к установке — использовался только антивирусный модуль;
- если он работал скрытно и без ошибок — нет ясности, что потом помешало ему работать дальше, в паре с termdd.sys.
Для теста антивирусное ПО Symantec было заменено на стандартный Microsoft Security Essentials. И вылеты прекратились.
✅ Сегодня сервер работает в штатном режиме, но уже без SEP.
Полезные материалы Microsoft
- Устранение ошибок синего экрана (последовательность шагов по диагностике неполадок).
_____________________________________
⚡ Подписывайтесь на канал или задавайте вопрос на сайте — постараемся помочь всеми техническими силами. Безопасной и производительной работы в Windows и 1С.