tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: ping: sendto: No buffer space available

On Oct 9, 2011, at 17:16 , Erik Fair wrote:

> On Oct 5, 2011, at 12:44 , Thomas Klausner wrote:
>> When I start rtorrent with ~20 torrents and an effective traffic of a
>> few 100KB/s, after a short while the machine falls off the net. When I
>> do ping then, I see
>> ping: sendto: No buffer space available
> There is another place in our network code you can get ENOBUFS from,
> unrelated to the number of kernel mbufs; see PR 7285 
> See also src/sys/net/if.{c,h} and IF_QFULL() macro.
> We really, really need to have a separate errno for "network interface queue 
> full", ideally coordinated with our "sister" BSD's and ... Linux.

On second thought, the kernel should block on that condition, unless the 
user code has explicitly set a non-blocking flag (and thus indicated its 
ability/willingness to handle the "queue is full" error with appropriate 
behavior). Otherwise, we're simply going to get naive application code 
that bangs away at sending without appropriate exponential backoff.

Yes, this is an API change. Alternative suggestions welcome.

        Erik <>

Home | Main Index | Thread Index | Old Index