lkml.org 
[lkml]   [1996]   [Nov]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: X-Inside posts Linux bug, has it been reported anywhere else?

In your message of 17 November 1996 you write:

> From: roell@xinside.com (Thomas Roell)
> Date: 12 Nov 1996 09:27:42 -0700
>
> We found now the problem. Basically it's a LINUX kernel bug. It seems
> to appear at least on kernels between 2.0.0 and 2.0.22. Older kernels
> do work fine. In case I don't bore anybody, here what's really
> happening. If you do a read() system call in a non-blocking device,
> and it get's interrupted in the system call (which kind of should not
> happen at all), then a posix compilant system (and LINUX for that
> matter) should return an error of EAGAIN. However the kernels
> mentioned above randomly return either EINTR (which is for blocking
> devices) or ERESTARTSYS, which the docs say "Should never be seen by
> user programs".
>
> Umm... that sounds interesting. What evidence do you have to
> demonstrate this? (You realize that just because strace shows
> ERESTARTSYS doesn't mean that the user program ever gets the
> ERESTARTSYS; the system call just gets restarted.)

What about looking at what read() returns ?

> What device were you finding this before? I've just desk-checked the
> tty N_TTY code, and it sure doesn't look like it has this problem. Each
> device implements its own reader code, though, so you really need to
> specify which device you were using.

Socket-io code. Linus got me this fix:

-----
--- v2.0.25/linux/net/ipv4/tcp.c Wed Nov 13 11:26:24 1996
+++ linux/net/ipv4/tcp.c Thu Nov 14 20:56:46 1996
@@ -1420,6 +1420,8 @@
if (copied)
break;
copied = -ERESTARTSYS;
+ if (nonblock)
+ copied = -EAGAIN;
break;
}

-----
- Thomas
--
Denver Office THOMAS ROELL /\ Das Reh springt hoch,
+1(303)298-7478 X INSIDE INC / \/\ das Reh springt weit,
1801 Broadway, Suite 1710 / \ \/\ was soll es tun,
Denver, CO 80202 roell@xinside.com / Oelch! \ \ es hat ja Zeit.

\
 
 \ /
  Last update: 2005-03-22 13:37    [from the cache]
©2003-2011 Jasper Spaans