[comp.unix.xenix] MICOM/Interlan TCP/IP

BOB@earth.arc.nasa.gov (Bob Day) (03/29/89)

We recently purchased a MICOM/Interlan NP600 Ethernet board as well as
their NP621-386 TCP/IP software for use on a Xenix 386 (version 2.2.3)
system.  Now we've run into an unusual problem.  We've contacted MI 
customer support repeatedly, but they've been politely unhelpful.  So I 
thought I'd see if anyone out there has run into this problem and 
developed a workaround.  The problem is this: 

I wrote a pair of very simple programs - a server and a client.  

The server consists of socket, bind, and listen calls and then it loops, 
accepting a connection and forking a child process to communicate with 
the client.  Its child process just sends back all that it receives.

The client simply sends its command line arguments to the server and 
receives them back again, one at a time.

The problem arises after the client program has been run at least twice
and I try to kill the server.  When I send a signal to the server the
system crashes with a general protection panic.  According to the value
of the PC in the register dump the crash is occurring in the middle of
MI's ethernet driver (in a function called _np_procq).  Interestingly,
the system does not crash if the server is killed after only zero or 
one connections by the client.

By the way, all this is being done as an unprivileged user, so even if
I had made blatant programming errors I still should not be able to 
crash the system.

So if anyone has found a way around this problem, please let me know.
Thanks.