Что означает код HRESULT 0x80270013 (NAP_E_SHV_TIMEOUT)?

 
Предыдущий Следующий
NAP_E_SHV_CONFIG_NOT_FOUND FA_E_MAX_PERSISTED_ITEMS_REACHED

NAP_E_SHV_TIMEOUT

Истёк тайм-аут валидатора работоспособности системы

NAP_E_SHV_TIMEOUT — это HRESULT 0x80270013 (знаковое десятичное значение -2144927725, беззнаковое десятичное значение 2150039571). AllStat на основании winerror.h описывает его так: «Истёк тайм-аут обработки запроса валидатором SHV». Значение обозначает ошибку, имеет код средства 0x27 и поле кода 0x0013.

Для случая тайм-аута валидатора работоспособности этот HRESULT относится к устаревшей технологии Network Access Protection: NAP недоступна начиная с Windows 10, а современные выпуски Windows Server не содержат прежних ролей NAP, HRA и HCAP. Поэтому его следует учитывать при анализе задержки SHV и зависимых от него служб на поддерживаемых устаревших системах, в архивной телеметрии, компонентах совместимости или проектах миграции, не ожидая наличия прежней платформы на современном компьютере.

Истёк срок асинхронной проверки

INapSystemHealthValidator::Validate получает параметр hintTimeOutInMsec. Microsoft указывает, что значение по умолчанию для всех SHV равно 2000 миллисекунд и что SHV, вернувший E_PENDING, должен вызвать OnComplete в отдельном потоке в пределах этого интервала; иначе ответ отбрасывается. NAP_E_SHV_TIMEOUT фиксирует нарушение этого срока. Это результат доступности, а не решение о том, работоспособна система или нет.

Почему проверка не укладывается в срок

  • До возврата E_PENDING валидатор SHV выполняет синхронный сетевой запрос или обращение к базе данных.
  • Серверная служба проверки состояния работает медленно, недоступна или выполняет внутренние повторы дольше тайм-аута NAP.
  • Истощение пула потоков задерживает работу проверки или обратный вызов OnComplete.
  • SHV завершает работу, но вызывает OnComplete для неправильного поколения запроса уже после исходного срока.
  • Общий тайм-аут был уменьшен для всех зарегистрированных SHV без проверки самой медленной поддерживаемой серверной зависимости.

Временные данные

  • Запишите моменты входа в Validate и возврата из него, решения E_PENDING, значение hintTimeOutInMsec, этапы серверной обработки, а также время SetSoHResponse и OnComplete.
  • Разделяйте задержку очереди, процессорное время, сетевое время и задержку планирования обратного вызова.
  • Зафиксируйте состояние процесса SHV, глубину пула потоков, число незавершённых проверок и состояние зависимого конечного узла.
  • Отслеживайте, был ли отброшен поздний ответ и привёл ли он затем к NAP_E_NOT_PENDING.

Соблюдение контракта

  • Возвращайте E_PENDING сразу, до медленного ввода-вывода, и выполняйте проверку по контролируемому асинхронному пути.
  • Задайте для зависимостей тайм-ауты короче срока NAP, чтобы у SHV оставалось время сформировать ответ с категорией отказа.
  • Ограничьте число параллельных проверок и отменяйте устаревшую серверную работу после истечения запроса.
  • Измерьте время каждого SHV до изменения общего тайм-аута, поскольку нестандартное значение влияет на все зарегистрированные валидаторы.

Отличие от соседних результатов NAP

NAP_E_TOO_MANY_CALLS означает отказ допуска из-за ограничения параллелизма, к которому могут привести накопившиеся медленные проверки. NAP_E_NOT_PENDING может получить позднее завершение после тайм-аута. Ошибка результата соответствия означает, что валидатор завершил работу и признал компьютер неработоспособным; NAP_E_SHV_TIMEOUT означает, что своевременный вердикт получить не удалось.

Повтор и восстановление

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

Практический сценарий

Антивирусный SHV обращается к удалённой базе инвентаризации, задержка которой выросла до пяти секунд. Validate возвращает E_PENDING, но сначала истекает 2000-миллисекундный срок NAP и сообщается NAP_E_SHV_TIMEOUT. Более короткий тайм-аут серверной зависимости и возврат ответа об отказе компонента в пределах окна NAP делают поведение политики предсказуемым.

Ссылки


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