| Previous | Next |
| ENETUNREACH | EADDRNOTAVAIL |
ETIME
This page examines Darwin STREAMS ioctl timeout. A STREAMS control transaction did not complete within its protocol timeout.
The returning interface matters
Darwin BSD system-call handling: Darwin streams ioctl timeout belongs to Darwin errno and should be decoded with the exact SDK or XNU header used by the target. Darwin extensions and legacy STREAMS names related to this error can differ in availability or numbering on other UNIX-like systems. The wording attached to ETIME is a clue to the original interface, not proof that a similarly named modern subsystem returned it.
Incident record
| Evidence | Question it answers |
|---|---|
| Ioctl, timeout, module stack, pending message, producer/driver state, and wakeup events. | Ties this error to one live API object instead of a translated message. |
| Darwin errno value and the SDK/XNU header version used to decode it. | Shows whether this error arose in the caller ABI, wrapper, or provider. |
| First syscall/ioctl return plus process, thread, and object generation. | Preserves the first boundary before errno can be overwritten. |
| Known-good object of the same class on the same macOS build. | Provides a same-platform known-good comparison. |
Controlled comparisons
- Issue a minimal control request with the same endpoint while monitoring completion. A changed errno after this test is a new boundary, not another spelling of this error.
- Capture errno immediately and compare the paired return value. Repeat the original operation after the control so the result remains relevant to this error.
- Repeat with one controlled object while keeping identity and sandbox unchanged. Keep the binary, header ABI, and provider fixed.
Two observations are especially discriminating here: Ioctl, timeout, module stack, pending message, producer/driver state, and wakeup events. Use this control for comparison: issue a minimal control request with the same endpoint while monitoring completion.
Nearby interpretations
| Tempting assumption | Safer interpretation |
|---|---|
| The English phrase is assumed to be portable | ETIME belongs to Darwin BSD system-call handling; verify the target headers and returning API before applying another platform's errno table |
| A retry succeeded and erased the original evidence | A retry can replace the original errno with a different state; preserve the first call, numeric value, and object generation beforehand |
Resolution criteria
Targeted correction. Repair the nonresponding module/peer and implement bounded retry with cancellation.
Regression proof. Controls complete or time out predictably without leaving stuck messages or reused state.
Technical references
- Apple XNU: errno.h — defines the status namespace used.
- Apple: intro(2) system-call errors — documents the API or lifecycle boundary behind this error.
- Apple OSS: XNU source — provides ABI, implementation, or protocol context.
- The Open Group: errno.h — supports the portability and verification limits.
Looking for a different code? Search another status or error code.
