| Previous | Next |
| KERN_DENIED | MACH_MSG_IPC_KERNEL |
MACH_MSG_VM_KERNEL
How this bit is used
MACH_MSG_VM_KERNEL is a supplemental bit, not a complete mach_msg result by itself. The kernel ORs it into MACH_RCV_HEADER_ERROR, MACH_RCV_BODY_ERROR, or a send result whose pseudo-receive could not fully restore the message. It identifies a kernel-side virtual-memory resource shortage while an out-of-line memory descriptor was being transferred.
That distinction matters because the message may already have been dequeued or partially transformed. A failed send can also return a buffer whose out-of-line addresses or port names changed during pseudo-receive. Code must first separate the base result from the special bits and then apply cleanup appropriate to the base result.
What to inspect
- Decode the result with
MACH_MSG_MASKand log the base send or receive error separately. - Record every out-of-line descriptor, its size, copy option, and deallocate flag.
- Look for system-wide memory pressure rather than assuming the receiver merely lacks address space; that case is
MACH_MSG_VM_SPACE. - Do not blindly resend a complex message until ownership of moved memory and rights has been revalidated.
References
Looking for a different code? Search another status or error code.
