| Previous | Next |
| ENOLCK | EREMCHG |
EBADMSG
EBADMSG is Solaris errno value 77. In Solaris documentation this is a specific STREAMS queue-head mismatch, not a generic statement that arbitrary application bytes are malformed. The unexpected item depends on the call that reported the error.
The failing STREAMS operation identifies the mismatch
For read(), the stream head can contain control information or a passed file descriptor when ordinary data was requested. For getmsg(), a passed file descriptor is the incompatible item. For ioctl(I_RECVFD), control or data information can prevent descriptor reception. These cases describe message type and queue ordering.
Capture the descriptor, the exact call, and the STREAMS modules pushed on the stream. A module that inserts control messages or descriptor-passing traffic can change what reaches the stream head. Do not reduce EBADMSG to EIO or blindly discard the first queued message: the unexpected message may carry protocol control information that the application must consume with the correct STREAMS interface.
References
- Oracle Solaris intro(2): EBADMSG call-specific cases
- Oracle Solaris STREAMS Programming Guide
- illumos errno.h
Looking for a different code? Search another status or error code.