I have been running some tests with TCP stream sockets, and have run into
a random crash problem - a severe lockup that requires a hard reset.
I am using kernel version 1.1.47, running on a 486/33 and P90, with
NE2000 clone ethernet cards.
My test programs are a TCP server (started by tcpd) and a TCP client that
sends 10000 blocks, each block 1500 bytes. The client uses writen()
(i.e. iterated write as in Stevens "UNIX Network Programming"), while the
server just reads with readn() (iterated read of 1500 bytes) and discards
the block. Running these programs both on the 486 gives no problems.
When the client is on the P90, it runs fine most of the time, then locks
the machine at some point. In my latest test I ran the client about 10
times in quick succession (in the foreground), left it for a few minutes,
ran it again and got a lockup.
There are many candidates for the source of this problem. Perhaps the
most likely is that this is a bug in my kernel version that has been fixed
by 1.2.X. I am hoping that someone will tell me that this is so.
I have to wonder whether my cheap Addtron ethernet cards could be to
blame, although I have seen no problems using nfs or ftp (transfer rates
up to 400 k/s). Could it be related to the PCI bus in the P90?
Any ideas out there?