Thread (53 messages) 53 messages, 6 authors, 2013-01-11

Re: ppoll() stuck on POLLIN while TCP peer is sending

From: Eric Wong <hidden>
Date: 2012-12-29 11:34:34
Also in: linux-fsdevel, lkml

Eric Wong [off-list ref] wrote:
Eric Wong [off-list ref] wrote:
quoted
I'm finding ppoll() unexpectedly stuck when waiting for POLLIN on a
local TCP socket.  The isolated code below can reproduces the issue
after many minutes (<1 hour).  It might be easier to reproduce on
a busy system while disk I/O is happening.
Ugh, I can't seem to reproduce this anymore...  Will try something
else tomorrow.
The good news is I'm not imagining this...

The bad news is the issue is real and took a long time to reproduce
again.  This issue happens even without preempt, and without
tcp_low_latency on 3.7.1

While running `toosleepy', I also needed to run heavy (not loopback)
network and disk activity (several USB, SATA, and eSATA drives
simultaneously) for many hours before hitting this.

Hopefully this report is helpful in solving the issue.  Looking in at
the various pieces in net and select/poll paths, there's several
references to race conditions in the comments so this is hopefully
familiar territory to someone here...
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help