lkml.org 
[lkml]   [2016]   [Aug]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [REGRESSION] Select hang with zero sized UDP packets
Date
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.

-----Original Message-----
From: David Miller
Sent: Tuesday, August 23, 2016 9:25 PM
To: labbott@redhat.com
Cc: kuznet@ms2.inr.ac.ru ; jmorris@namei.org ; yoshfuji@linux-ipv6.org ;
kaber@trash.net ; samanthakumar@google.com ; willemb@google.com ;
netdev@vger.kernel.org ; linux-kernel@vger.kernel.org
Subject: Re: [REGRESSION] Select hang with zero sized UDP packets

From: Laura Abbott <labbott@redhat.com>
Date: Tue, 23 Aug 2016 10:53:26 -0700

> Fedora received a report[1] of a unit test failing on Ruby when using
> the
> 4.7 kernel. This was a test to send a zero sized UDP packet. With the
> 4.7 kernel, the test now timing out on a select instead of completing.
> The reduced ruby test is
>
> def test_udp_recvfrom_nonblock
> u1 = UDPSocket.new
> u2 = UDPSocket.new
> u1.bind("127.0.0.1", 0)
> u2.send("", 0, u1.getsockname)
> IO.select [u1] # test gets stuck here
> ensure
> u1.close if u1
> u2.close if u2
> end

Well, if there is no data, should select really wake up?

I think it's valid not to.

\
 
 \ /
  Last update: 2016-09-17 09:57    [W:0.359 / U:0.032 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site