| Предыдущий | Следующий |
| EMULTIHOP | ELOCKUNMAPPED |
EBADRPC
EBADRPC — Darwin errno для структуры RPC, которую принимающий код считает недопустимой. Код относится к группе ошибок NFS и ONC RPC в XNU, но сам errno не является статусом ответа в сетевом протоколе. Сбой может возникнуть, когда реализация RPC анализирует, декодирует или иным образом проверяет доступную ей структуру сообщения.
ONC RPC версии 2 описывает сообщения с помощью XDR. Сообщение включает xid, тип сообщения и тело вызова или ответа; вызов RPC также содержит версию протокола RPC, номер программы, версию программы, номер процедуры, учётные данные, верификатор и параметры конкретной процедуры. Поэтому повреждённую или неверно интерпретированную структуру нельзя диагностировать только по имени узла: сохраните конечную точку и поля протокола, однозначно определяющие вызов.
Почему это не единственный серверный статус
RFC 5531 определяет GARBAGE_ARGS как ответ на принятый вызов, параметры которого удалённая процедура не может декодировать. Это условие сетевого протокола не является синонимом Darwin EBADRPC. Если журнал содержит EBADRPC, сначала установите API или библиотеку, вернувшие код, и лишь затем определяйте ответственность сервера, сети или полезной нагрузки приложения.
Целевые шаги диагностики
- Сохраните
xidвызова, конечную точку сервера, транспорт, программу RPC, версию программы и номер процедуры. Эти поля связывают клиентскую ошибку с конкретным обменом сообщениями. - Если политика разрешает, захватите и декодируйте полную запись RPC. В TCP протокол ONC RPC применяет разметку записей для разграничения сообщений; неполного захвата недостаточно, чтобы доказать повреждение записи.
- Сравните определения XDR и сгенерированные заглушки клиента с версией серверного интерфейса. Несогласованность макета структуры или декодеров отличается от недоступности программы или процедуры.
- Не сводите различие к общей «сетевой ошибке»: у проблем доступности и транспортных тайм-аутов другие признаки и способы устранения.
Ссылки
- Apple XNU: errno.h
- RFC 5531: структура сообщений и ответов ONC RPC версии 2
- RFC 4506: язык описания данных XDR
Нужно найти другой код? Найти другой код состояния или ошибки.