| Предыдущий | Следующий |
| MACH_MSG_IPC_KERNEL | MACH_MSG_IPC_SPACE |
MACH_MSG_VM_SPACE
Нехватка адресного пространства у получателя
MACH_MSG_VM_SPACE — специальный бит, добавляемый к более общей ошибке сообщения Mach. Он означает, что принимающая задача не смогла получить виртуальное адресное пространство для внестрочной области памяти. Без MACH_RCV_OVERWRITE принятые внестрочные области динамически размещаются где-либо в карте получателя; достаточно фрагментированная, ограниченная или исчерпанная карта может помешать такому выделению, даже когда физическая память ещё доступна.
Этот бит также может появиться во время псевдоприёма, используемого для восстановления после неудачной отправки. На этом пути возвращённый буфер сообщения может уже не содержать исходных адресов. Прежде чем решать, можно ли заново сформировать запрос или повторить его, вызывающая сторона должна соблюдать правила владения, заданные базовым кодом возврата.
Что исследовать
- Запишите базовую ошибку вместе с размером каждой внестрочной области и указанием, запрашивался ли приём с выделением памяти или перезаписью.
- Проверьте ограничения адресного пространства получателя и нагрузку на карту, особенно у долго работающих процессов, резервирующих множество областей.
- Не путайте этот результат с
MACH_MSG_VM_KERNEL, который сообщает о нехватке ресурсов ядра. - Для приёма с перезаписью убедитесь, что предоставленные области достаточно велики и доступны для записи; для несоответствия размеров предусмотрены отдельные ошибки приёма.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.