Well, I am able to reproduce the crash pretty reliably, I don't know what is
causing it yet, I just kill all the other ypservs on a subnet except for this
one and it crashes about once every 5 minutes.  I have some questions/theories
that I'd like to bounce off of people:

1)  In the yp_all function it calls yp_fork() to fork a new ypserv, the
    parent them calls return(NULL); and the child handles the request.
    Looking at the ktraces, I notice that the parent does not close
    the socket connection, but after the child finishes the transaction
    the parent gets a read() return value of 0 (EOF) for that socket and 
    then closes it.  Since this is a yp_all request there _shouldn't_ be 
    any more read data on the socket until the close event (which is a read
    of 0), but that socket is still open in both the parent and the child,
    and the child is making calls against it... is there a possibility
    of some shared data corruption within the RPC code that anyone could
    think of?

2)  The RPC code itself has a lot of checks against blocking... is the forking
    of ypserv even needed at all?

--
David Cross                               | email: [EMAIL PROTECTED] 
Lab Director                              | Rm: 308 Lally Hall
Rensselaer Polytechnic Institute,         | Ph: 518.276.2860            
Department of Computer Science            | Fax: 518.276.4033
I speak only for myself.                  | WinNT:Linux::Linux:FreeBSD

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to