Re: tcp_do_sendmsg()

David S. Miller (davem@dm.cobaltmicro.com)
Mon, 23 Mar 1998 08:36:35 -0800


From: Andi Kleen <ak@muc.de>
Date: 23 Mar 1998 05:13:12 +0100

Netscape calls connect(), makes the socket non blocking, waits with
select(), is waken up for the socket and starts a write(s, "GET
/url", ..) on the socket.

Ok.

Because the socket is not established yet the kernel returns EAGAIN
[why not ENOTCONN here, btw?],

I think this is what POSIX mandates, maybe Alan knows if this is the
case.

netscape tries again, server never answers -> endless loop. The
result is that netscape freezes because it never gets back to its
main select() that dispatches the X11 connection.

I've seen this several times now, and heard from others that it
happened there too. This does not happen with 2.0.

I can't think of what could possibly be different behavior wise in
this case between 2.0.x and 2.1.x, except for tcp_poll(). I'll try to
verify that function today, it might be the problem.

Later,
David S. Miller
davem@dm.cobaltmicro.com

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu