| Previous | Next |
| ENAVAIL | EISNAM |
ENOBUFS
ENOBUFS is a resource-pressure signal from the buffering layer. It does not necessarily mean the application's own allocation failed. Socket send queues, kernel transport buffers, provider resources, and a burst of outstanding work can all be the limiting layer.
In native Winsock code, retrieve WSAENOBUFS via WSAGetLastError(). The response depends on the socket type and I/O model. For nonblocking stream sends, partial completion is normal when buffer space is limited; a queued asynchronous operation has separate completion semantics. Avoid treating both cases as one generic memory error.
Measure pressure before tuning
- Record requested and completed byte counts, number of queued sends, per-connection queue depth, global memory pressure, and socket mode.
- Apply backpressure to producers rather than increasing queue sizes without a bound; unbounded buffering moves failure to a later and less observable point.
- Use readiness or completion signals to resume sending and keep partial-write accounting exact.
- Compare the failure rate across connections and interfaces. A single slow peer and a system-wide buffer shortage require different remedies.
References
Looking for a different code? Search another status or error code.
