| Предыдущий | Следующий |
| MACH_RCV_INVALID_TYPE | MACH_RCV_INVALID_TRAILER |
MACH_RCV_SCATTER_SMALL
Что означает результат
MACH_RCV_SCATTER_SMALL: Mach IPC получил сообщение в scatter-режиме, но один из предоставленных получателем участков для out-of-line данных оказался меньше соответствующего фрагмента сообщения. Основной inline-буфер сообщения при этом не обязательно слишком мал.
Что проверить
- Сохраните descriptor сообщения и scatter list, использованные в том же mach_msg receive.
- Сопоставьте каждый out-of-line descriptor с размером соответствующего scatter-участка, а не только общий размер receive buffer.
- Проверьте, не изменился ли формат сообщения у отправителя без синхронного изменения layout буферов получателя.
- Если размеры вычисляются динамически, проверяйте переполнение и округление до выравнивания Mach descriptors.
Диагностика и исправление
Увеличьте конкретный scatter-участок или согласуйте формат сообщения между сторонами. Замена только основного receive buffer не исправляет слишком маленький target для out-of-line части.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.