Что означает код возврата ядра macOS 0x10000017 (MACH_SEND_MSG_FILTERED)?

 
Предыдущий Следующий
MACH_SEND_NO_GRANT_DEST MACH_RCV_IN_PROGRESS

MACH_SEND_MSG_FILTERED

Фильтр сообщений на стороне ядра отклонил отправку с допустимым адресатом

MACH_SEND_MSG_FILTERED означает, что отправка отклонена фильтром сообщений. Статус полезен именно потому, что отделяет применение политики от разрешения адреса: вызывающая сторона может владеть правом назначения, но сообщение всё равно не будет доставлено. Его не следует диагностировать как обычный тайм-аут или как доказательство того, что целевой процесс уже прочитал запрос.

Сам результат не раскрывает правило фильтра. Фильтр может оценивать свойства сообщения, политику назначения или контекст за пределами полезной нагрузки приложения. Поэтому слепые повторы и случайные изменения идентификатора сообщения являются плохой реакцией: они способны порождать повторный запрещённый трафик, не обнаруживая границу политики.

Что сохранить для диагностики

  • Запишите идентификатор сообщения, параметры, владельца назначения или службу, а также наличие в теле дескрипторов или передаваемых прав.
  • Сохраните относящиеся к тому же временному интервалу журналы ядра, песочницы, разрешений и политики службы.
  • Сравните отклонённый вызов с заведомо принятым вызовом через тот же общедоступный API, включая его контекст выполнения.
  • Не отмечайте операцию завершённой, пока вызывающая сторона не получила успешный результат отправки или документированное подтверждение на уровне приложения.

Ссылки


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