Найти в Дзене
Digital

Ошибка BSOD код 0x000000d1 на Windows Server 2008 R2

Оглавление

История одного расследования «синего экрана» на серверной ОС. У клиента периодически начал перезагружаться сервер 1С. Физическая машина в локальной сети. Нас попросили проверить, в чем дело.

Эти зависания доставляли неудобства в работе. В принципе, мешали делу, а пользователи содрогались при виде ошибки на своих экранах.

Система Windows Server 2008 R2 Standard (x64) Service Pack 1

На сервере был установлен признак «Выполнить автоматическую перезагрузку» при отказе системы.

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

Ошибка BSOD код 0x000000d1 на Windows Server 2008 R2
Ошибка BSOD код 0x000000d1 на Windows Server 2008 R2

Изучение и просмотр журналов

По фильтрам быстро вышли на код ошибки — 0x000000d1. Само событие записано в таком виде:

Компьютер был перезагружен после критической ошибки. Код ошибки: 0x000000d1 (0x0000000000000000, 0x0000000000000002, 0x0000000000000000, 0xfffff88007285006). Дамп памяти сохранен в: C:\Windows\MEMORY.DMP.

Описание ошибки: DRIVER_IRQL_NOT_LESS_OR_EQUAL. Если упрощенно — ошибка вызвана обращением драйвера к памяти.

Стандартные шаги

В командной строке от имени администратора. Для выполнения или завершения операций может потребоваться перезагрузка сервера.
  1. Проверка оперативной памяти на предмет неполадок (mdsched.exe).
  2. Проверка диска на ошибки (chkdsk c: /f).
  3. Проверка целостности системных файлов (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С.