On Wed, 2016-08-24 at 11:22 +0300, Dan Akunis wrote:
When select wakes up on a UDP socket, user is expecting to get data. Getting
0 from recvfrom() or whatever read function she uses, is a wrong attitude.
I agree with David.
The unit test that expects select to wake up is wrong and should be changed.
Please do not top post on netdev mailing list.
Program is fine and wont be changed to work around a kernel bug.
We definitely can send and receive UDP messages with 0 payload.
So select() should unblock when one such frame is received, otherwise
you could fill up the receive queue with a lot of frames like that and
when SO_RCVBUF limit is reached, block future messages.
UDP is a datagram protocol.
Bug fix is merged :
https://git.kernel.org/cgit/linux/kernel/git/davem/net.git/commit/?id=e83c6744e81abc93a20d0eb3b7f504a176a6126a