Что означает код возврата ядра macOS 8192 (MACH_MSG_IPC_SPACE)?

 
Предыдущий Следующий
MACH_MSG_VM_SPACE MACH_MSG_MASK

MACH_MSG_IPC_SPACE

Исчерпание пространства имён Mach внутри задачи

MACH_MSG_IPC_SPACE дополняет ошибку отправки или приёма, когда задача не может выделить ещё одно имя в своём пространстве IPC для переданного права порта. Имена портов Mach являются локальными дескрипторами задачи: получение права обычно создаёт или обновляет запись в её пространстве имён. Поэтому этот бит указывает на ёмкость пространства имён или давление жизненного цикла на стороне получателя, а не на повреждённое DNS-подобное «имя» и не обязательно на общее исчерпание ядра.

Если ошибка возникает после извлечения сообщения из очереди, интерфейс может уничтожить непередаваемое право и поместить вместо него MACH_PORT_NULL. Ошибка тела может быть частичной, поэтому другие дескрипторы того же сообщения уже могут быть действительными и принадлежать получателю.

Что проверить

  • Расшифруйте связанный MACH_RCV_HEADER_ERROR, MACH_RCV_BODY_ERROR или результат отправки до выбора очистки.
  • Проверьте долгоживущие права отправки, мёртвые имена, права уведомлений и несбалансированное освобождение портов Mach в принимающем процессе.
  • Проверяйте каждый возвращённый дескриптор, а не считайте сложное сообщение полностью успешным или полностью неудачным.
  • Отличайте этот бит от MACH_MSG_IPC_KERNEL, обозначающего нехватку IPC-ресурсов ядра.

Ссылки


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