| Previous | Next |
| EILSEQ | EPROTONOSUPPORT |
EIDRM
What disappeared
EIDRM means that a System V IPC object identified by the caller—such as a message queue or semaphore set—was removed from the kernel. A process blocked in a send, receive, or semaphore operation can wake with this result because the object vanished while it was waiting. It is therefore a lifecycle event, not a transient empty-queue or busy-lock result.
Applications that cache raw IPC identifiers are especially exposed. A supervisor, cleanup job, deployment, namespace teardown, or crash-recovery tool may delete and recreate an IPC object with the same logical purpose but a different kernel identity. Reusing the old numeric identifier after EIDRM is unsafe.
Recovery strategy
- Log which IPC object was removed, who owns its lifecycle, and whether the process was blocked or actively operating on it.
- Discard the identifier and re-run the documented discovery or initialization sequence; do not retry the stale call.
- Coordinate creation, shutdown, and cleanup so consumers receive an explicit stop or generation change before removal.
- Include generation or ownership data in higher-level protocols when multiple instances may recreate the same named resource.
References
Looking for a different code? Search another status or error code.
