Что означает код BSOD 17 (THREAD_NOT_MUTEX_OWNER)?

 
Также может означать:
КонстантаТипОС
ERROR_NOT_SAME_DEVICEОшибка WindowsWindows
KERN_INVALID_RIGHTКод возврата ядра macOSmacOS
ippStsUnderflowСтатус Intel IPPЛюбая
EEXISTerrnoЛюбая
Предыдущий Следующий
SPIN_LOCK_NOT_OWNED TRAP_CAUSE_UNKNOWN

THREAD_NOT_MUTEX_OWNER

Нарушение владения мьютексом при THREAD_NOT_MUTEX_OWNER

THREAD_NOT_MUTEX_OWNER — это код проверки ошибки 0x00000011. Мьютексы ядра являются объектами синхронизации, принадлежащими конкретному потоку. Эта проверка означает, что учёт владельца больше не соответствует пути освобождения или ожидания. Обычно драйвер использовал неверный объект, неверный контекст потока либо ошибочный путь раскрутки стека.

Как интерпретировать THREAD_NOT_MUTEX_OWNER в дампе

  • Определите поток в дампе и сопоставьте его с владельцем мьютекса.
  • Проверьте пути APC, рабочих потоков, завершения операций и очистки, которые выполняются не в том потоке, где объект был захвачен.
  • Этот сбой отличается от неправильного использования спин-блокировки, поскольку владение мьютексом связано с потоком.

Что проверить при THREAD_NOT_MUTEX_OWNER

  • Убедитесь, что освобождение блокировки выполняется в рамках той же модели владения, которая использовалась при её захвате.
  • Проверьте передачу работы между системными потоками, рабочими элементами, функциями обратного вызова и процедурами отмены.
  • При воспроизводимых нарушениях владения и порядка блокировок используйте Driver Verifier с проверкой взаимоблокировок.

Ссылки для THREAD_NOT_MUTEX_OWNER

Данные дампа для THREAD_NOT_MUTEX_OWNER

Для THREAD_NOT_MUTEX_OWNER сохраните полный дамп, четыре параметра проверки ошибки, точную сборку Windows, список загруженных модулей и хронологию событий непосредственно перед остановкой. AllStat описывает состояние как «THREAD_NOT_MUTEX_OWNER»; эта формулировка определяет класс сбоя, а параметры и стек показывают, какой объект, драйвер, процессор или экземпляр подсистемы участвовал в нём.

Порядок анализа THREAD_NOT_MUTEX_OWNER

  • Выполните в WinDbg команду !analyze -v, затем изучите документированное значение каждого параметра THREAD_NOT_MUTEX_OWNER, а не полагайтесь только на строку probably-caused-by.
  • Найдите самое раннее аномальное событие: обновление драйвера, изменение микропрограммы, сброс устройства, ошибку хранилища, отчёт Driver Verifier, исчерпание ресурсов или зависание приложения, связанное с потоком, мьютексом или владельцем.
  • При анализе THREAD_NOT_MUTEX_OWNER сохраните в перечне модулей сторонние драйверы фильтрации, безопасности, хранения данных, графики и виртуализации: удаление этих компонентов до разбора дампа может скрыть ответственный путь выполнения.

Не перезагружайте многократно компьютер с THREAD_NOT_MUTEX_OWNER до сохранения дампа и журналов событий. Для THREAD_NOT_MUTEX_OWNER выбирайте восстановительные действия по компоненту, указанному стеком и параметрами, а не только по символическому имени стоп-кода.

Данные дампа для THREAD_NOT_MUTEX_OWNER

Для THREAD_NOT_MUTEX_OWNER сохраните полный дамп, четыре параметра проверки ошибки, точную сборку Windows, список загруженных модулей и хронологию событий непосредственно перед остановкой. AllStat описывает состояние как «THREAD_NOT_MUTEX_OWNER»; эта формулировка определяет класс сбоя, а параметры и стек показывают, какой объект, драйвер, процессор или экземпляр подсистемы участвовал в нём.

Порядок анализа THREAD_NOT_MUTEX_OWNER

  • Выполните в WinDbg команду !analyze -v, затем изучите документированное значение каждого параметра THREAD_NOT_MUTEX_OWNER, а не полагайтесь только на строку probably-caused-by.
  • Найдите самое раннее аномальное событие: обновление драйвера, изменение микропрограммы, сброс устройства, ошибку хранилища, отчёт Driver Verifier, исчерпание ресурсов или зависание приложения, связанное с потоком, мьютексом или владельцем.
  • При анализе THREAD_NOT_MUTEX_OWNER сохраните в перечне модулей сторонние драйверы фильтрации, безопасности, хранения данных, графики и виртуализации: удаление этих компонентов до разбора дампа может скрыть ответственный путь выполнения.

Не перезагружайте многократно компьютер с THREAD_NOT_MUTEX_OWNER до сохранения дампа и журналов событий. Для THREAD_NOT_MUTEX_OWNER выбирайте восстановительные действия по компоненту, указанному стеком и параметрами, а не только по символическому имени стоп-кода.


Нужно найти другой код? Найти другой код состояния или ошибки.