socket connected to itself with RH 2.2.14-5.0? (Problem with example from Stevens)

From: Dan Kegel (dank@kegel.com)
Date: Tue Aug 21 2001 - 15:43:30 EST


I've been fooling around with porting
the example programs from Richard Stevens'
"Unix Network Programming, Volume 1, 2nd edition"
to Linux. The patches I've come up with so far, along with
instructions for reproducing my results, are
available at http://www.kegel.com/unpv1/
My goal is to reproduce the results in table 27-1.

Along the way, I have been running both server and client on
the same machine (it's easier to script that way for testing).
Oddly, on Red Hat 6.2, the client often hangs within a minute or two.
Poking around a bit shows that the client is blocked in read.
OK so far, that could be a bug in the program or how I'm using it.

The interesting bit is that (after you wait long enough for other
activity to finish up) all threads of the server are serenely
sitting in accept(), knowing nothing about the client supposedly connected to it.
Curiously, netstat -pant | grep 127.0.0.1 shows just

tcp 0 0 127.0.0.1:2003 127.0.0.1:2003 ESTABLISHED 965/client

Erm, could the client have connected to *itself* somehow?

Doesn't happen with Red Hat 7.1. I am now compiling vanilla 2.2.19 to see
if that fixes it, too.

(I seem to have a knack for triggering this kind of thing. ucd-snmp/snmpget
used to crash if you had it query itself :-)

- Dan

-- 
"I have seen the future, and it licks itself clean." -- Bucky Katt
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Aug 23 2001 - 21:00:45 EST