Re: pre-2.1.90-3 IP problems

Andi Kleen (ak@muc.de)
15 Mar 1998 16:38:32 +0100


Jon Evans <jon@evansoft.demon.co.uk> writes:

> On Sun, 15 Mar 1998, Jeff DeFouw wrote:
>
> > system didn't die that time. RealAudio wasn't connecting so I checked the
> > network activity and found that my system was sending out a flood of the
> > same TCP ack packet to the server--about 2 packets every hundredth of a
> > second! RealAudio used readv and writev several times before it looped
>
> That sounds like something I had with pre-2.1.90-2 +IM's delayed IO-bitmap
> clearing patch.
>
> I was trying to connect to a https: site with Netscape Communicator and it
> looked like my modem SD light just locked on. It stayed like that for
> about a minute until I pressed Stop on the browser, then the light went
> out. I pressed Refresh and it did it again. So I gave up. :-)
>
> I didn't do any investigation as to what packet it was sending etc. as I
> don't know how to. :)

I have seen this often too (with earlier kernels - 2.1.85) . A strace on
netscape showed that it was in an endless loop sending the http request
to a not-yet-connected socket, Linux returns EAGAIN, netscape tries again, ..

I checked the code and this code seems to behave the same in 2.0 and 2.1
so it is a mysterium why this causes a problem. BSD returns ENOTCONN in
this case, not EAGAIN, but Solaris returns EAGAIN too so that is not
a linux-specific behaviour.

There must be some change in 2.1 that causes netscape to do that. I wasn't
able to track it down yet. As far as I can see the code to check for a
not-yet connected socket in tcp_do_sendmsg() does the same in 2.0 and 2.1.

-Andi

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