| Предыдущий | Следующий |
| STATUS_ACCOUNT_EXPIRED | STATUS_NETWORK_CREDENTIAL_CONFLICT |
STATUS_POSSIBLE_DEADLOCK
Наблюдаемый порядок блокировок может образовать цикл взаимоблокировки
Возможная взаимоблокировка относится к порядку захвата, а не обязательно к уже зависшей системе. Обнаружение взаимоблокировок Driver Verifier строит граф порядка захвата ресурсов и ищет циклы. Цикл означает, что два или более пути кода могут захватывать общие блокировки в несовместимом порядке и взаимоблокироваться при совпадении времени.
Соберите граф блокировок, потоки-владельцы и стеки для обоих порядков захвата. Правильное исправление обычно состоит в определении единой глобальной иерархии блокировок, уменьшении вложенного владения или изменении механизма передачи. Тайм-ауты и дополнительные повторы лишь меняют время видимости взаимоблокировки. Для исследований ядра расширение отладчика !deadlock может показать топологию, отслеживаемую Verifier.
Что проверить
- Зафиксируйте оба пути порядка блокировок, создающие цикл.
- Определите и соблюдайте единую иерархию захвата во всём общем коде.
- Используйте обнаружение взаимоблокировок Driver Verifier и данные отладчика о блокировках до изменения тайм-аутов.
Ссылки
- Microsoft: обнаружение взаимоблокировок Driver Verifier
- Открытые спецификации Microsoft: значения NTSTATUS
Нужно найти другой код? Найти другой код состояния или ошибки.