All of lore.kernel.org
 help / color / mirror / Atom feed
* PROBLEM: blocking read on socket repeatedly returns EAGAIN
@ 2005-08-16 13:19 Kern Sibbald
  2005-08-16 14:03 ` Alan Cox
  2005-08-16 18:36 ` David S. Miller
  0 siblings, 2 replies; 9+ messages in thread
From: Kern Sibbald @ 2005-08-16 13:19 UTC (permalink / raw)
  To: linux-kernel

A read() on a TCP/IP socket, which should block returns -1 with errno=EAGAIN

Unless I am mistaken, the read() should block as the socket is active with no 
problems.  The only "unusual" items are that I have set the network buffer 
size to 32K (32 * 1024), IPTOS_THROUGHPUT, and keepalive.  In addition, I put 
a lot of data into the write side of the socket, then do the read().  The 
other end of the socket is perfectly alive, but does not read() the data I 
have written, nor does it write() anything.  When my read() is issued, I 
expect it to block, but it immediately returns with -1 and errno set to 
EAGAIN.  If the read() is re-issued, a CPU intensive loop results as long as 
the other end does not read() the data written to the socket.  This is a 
multi-threaded program, but the other threads are all blocked on something.

Kernel: Fedora FC4
Linux version 2.6.12-1.1398_FC4smp (bhcompile@tweety.build.redhat.com) (gcc 
version 4.0.0 20050519 (Red Hat 4.0.0-8)) #1 SMP Fri Jul 15 01:30:13 EDT 2005

This problem occurs in my network backup program, Bacula, so it would be a 
fair amount of work to send you a program that shows this behavior.

Best regards,

Kern

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2005-08-16 21:07 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-08-16 13:19 PROBLEM: blocking read on socket repeatedly returns EAGAIN Kern Sibbald
2005-08-16 14:03 ` Alan Cox
2005-08-16 14:12   ` Kern Sibbald
2005-08-16 14:52     ` Alan Cox
2005-08-16 14:38   ` Kern Sibbald
2005-08-16 18:39     ` David S. Miller
2005-08-16 21:06       ` Kern Sibbald
2005-08-16 18:37   ` David S. Miller
2005-08-16 18:36 ` David S. Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.