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 second thought, the kernel should block on that condition, [...]
> In general, I expect write(2)/sendmsg(2)/friends to error on EINTR
> and need to be restarted, or EAGAIN in non-blocking mode, [...]

Except the case at hand is a "fire and forget, best effort delivery"
send.  Or at least it traditionally has been; changing that _would_ be
an API/ABI change.  As little as I like silent drops in most cases, I
think the packet should be silently dropped on interface output queue
full here.

> Should ENOBUFS be considered like EAGAIN and always be considered
> restartable/recoverable?

For a blocking operation, yes, I think so, unless the generating code
has reason to think it can never succeed (and I can't think of any case
in which that's true for which I think ENOBUFS is appropriate).

The case at hand is not a blocking operation.

/~\ The ASCII                             Mouse
\ / Ribbon Campaign
 X  Against HTML                mouse%rodents-montreal.org@localhost
/ \ Email!           7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B


Home | Main Index | Thread Index | Old Index