Что означает код HRESULT 0x80010109 (RPC_E_RETRY)?

 
Предыдущий Следующий
RPC_E_DISCONNECTED RPC_E_SERVERCALL_RETRYLATER

RPC_E_RETRY

RPC_E_RETRY: смысл кода и диагностика

RPC_E_RETRY — HRESULT, относящийся к области COM/RPC. COM-объект временно не может обработать вызов и предлагает клиенту повторить его позднее.

Для RPC_E_RETRY этот HRESULT возвращён инфраструктурой COM. Применительно к RPC_E_RETRY полезная причина определяется границей процесса/апартамента, интерфейсом, методом и тем, какая сторона не смогла маршалировать данные.

Практический вывод для RPC_E_RETRY: этот HRESULT фиксирует описанное условие, но сам по себе не показывает, какой участник операции первым нарушил контракт. Для RPC_E_RETRY найдите первый вызов, вернувший статус, и только после этого меняйте конфигурацию подсистемы COM/RPC.

Как читать имя RPC_E_RETRY

Имя RPC_E_RETRY помогает сузить поиск: RETRY — технический маркер «retry». Эти части имени не заменяют документацию API, но позволяют проверить, что журнал и код относятся к одному и тому же условию.

Разбор условия ошибки

Для RPC_E_RETRY имя кода указывает на незавершённую или конфликтующую операцию. Применительно к RPC_E_RETRY диагностика должна восстановить владельца, время жизни и механизм уведомления о завершении.

  • Для RPC_E_RETRY найдите активную конкурирующую операцию и дождитесь документированного события завершения вместо бесконечного polling.
  • При разборе RPC_E_RETRY после разрыва соединения или отключения объекта создайте новый COM-прокси, а не повторяйте вызов через старый.
  • При разборе RPC_E_RETRY запишите CLSID/IID, номер метода, границу процесса или апартамента и сторону, на которой получен HRESULT.
  • При разборе RPC_E_RETRY проверьте регистрацию интерфейса и proxy/stub, разрядность компонентов и совместимость type library.
  • При разборе RPC_E_RETRY сверьте типы, размеры и время жизни всех входных/выходных параметров, особенно указателей и пользовательских структур.

Диагностический минимум

  • Для RPC_E_RETRY соберите дампы клиента и сервера вокруг первого сбоя и сохраните correlation между вызовами.
  • Для RPC_E_RETRY включите журналирование RPC/COM только на время воспроизведения и зафиксируйте идентификатор интерфейса.
  • Для RPC_E_RETRY проверьте тот же метод in-proc или с минимальными параметрами, чтобы локализовать маршалинг.

Как подтвердить исправление

Для RPC_E_RETRY проверка исправления RPC_E_RETRY должна включать успешный рабочий путь, предсказуемый отказ на некорректном входе и отсутствие новых предупреждений в журналах подсистемы COM/RPC.

Ссылки по RPC_E_RETRY


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