Что означает код HRESULT 0x80630103 (PEER_E_CONNECTION_NOT_FOUND)?

 
Предыдущий Следующий
PEER_E_TOO_MANY_ATTRIBUTES PEER_E_CONNECT_SELF

PEER_E_CONNECTION_NOT_FOUND

Где peer stack отклоняет операцию

PEER_E_CONNECTION_NOT_FOUND — HRESULT 0x80630103 означает, что запрошенного идентификатора прямого или соседнего соединения больше нет в таблице соединений графа или группы. PEER_E_CONNECTION_NOT_FOUND — Рассматривайте это как результат жизненного цикла графа, а не как общий сбой peer-сети.

Peer Graphing поддерживает связанный набор nodes, реплицирует records и имеет отдельные lifetimes graph, node, connection и event. Открытая graph database не означает, что node подключён.

Данные, которые нужно сохранить до повтора

  • Зафиксируйте первый отказ среди PeerGraphEnumConnections, PeerGraphCloseDirectConnection, PeerGroupEnumConnections и PeerGroupCloseDirectConnection.
  • Сохраните connection ID, node ID, тип соединения, снимок перечисления, порядок событий отключения и сведения о том, не закрыл ли уже соединение другой поток.
  • Поместите успешное создание/discovery, события изменения состояния и неудачный вызов на одну timeline.
  • Сохраняйте peer name, identity, идентификаторы записей, данные приглашений и endpoint в исходном представлении Unicode или в двоичном виде.

Контролируемая изоляция

перечислите активные соединения непосредственно перед закрытием или отправкой, затем повторите после обработки события отключения. Меняйте только одну переменную; одновременные изменения identity, cloud, database и firewall state уничтожают причинную привязку.

Контрольная точкаВопрос для PEER_E_CONNECTION_NOT_FOUND
До APIБыло ли требуемое состояние узла или соединения получено в этом процессе и контексте пользователя?
На HRESULTСохраните connection ID, node ID, тип соединения, снимок перечисления, порядок событий отключения и сведения о том, не закрыл ли уже соединение другой поток.
После исправлениясчитайте connection ID временными и удаляйте их из состояния приложения сразу после прихода соответствующего события соединения.

Соседний результат

PEER_E_NODE_NOT_FOUND отличается тем, что node-not-found относится к identity узла графа, а connection-not-found — к конкретному живому объекту соединения. Сохраняйте оба HRESULT в хронологическом порядке: исправление предпосылки может открыть следующий этап validation.

Безопасная реакция

считайте connection ID временными и удаляйте их из состояния приложения сразу после прихода соответствующего события соединения. Перед изменениями сохраняйте durable graph databases, group exports, identity certificates и invitation artifacts.

Инструментирование и регрессионное покрытие

Фиксируйте первый неудачный вызов, а не более поздний результат cleanup. Решающее значение имеют connection ID, node ID, тип соединения, снимок перечисления, порядок событий отключения и факт возможного закрытия связи другим потоком.

Регрессионный уровеньПроверяемый случайУсловие прохождения
Входные данные и время жизни объектаПостройте минимальный сценарий, в котором запрошенного идентификатора прямого или соседнего соединения уже нет в таблице графа или группы.В тесте фиксируются владеющий дескриптор, контекст пользователя и точный API из PeerGraphEnumConnections, PeerGraphCloseDirectConnection, PeerGroupEnumConnections и PeerGroupCloseDirectConnection.
Контролируемое сравнениеперечислите активные соединения непосредственно перед закрытием или отправкой, затем повторите после обработки события отключения.Между неуспешным и успешным запуском изменяется только целевое состояние node или connection.
Путь восстановлениясчитайте connection ID временными и удаляйте их из состояния приложения сразу после прихода соответствующего события соединения.Нужная операция завершается успешно без замены несвязанной replicated graph database.

Сохраняйте unsigned hexadecimal HRESULT, symbolic names и timestamps в одной trace. Такая запись позволяет регрессионному тесту отличить состояние жизненного цикла графа от последующего сбоя транспорта, авторизации или приложения.

Ссылки


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