I had the hunch that the problem I am dealing with related to the unlink
portion of NFS... So I have simplified the code down to this tiny snipet which
will reliably crash the system (I left it running by accident and it brought
my test machine down 3 times before I remembered to kill it :).  This is only
3 lines of code, and a for loop to iterate it.

int main(int argc, char **argv)
{
        int fd;
        int counter;
        char newfilename[1024];

        strcpy(newfilename,argv[1]);
        strcat(newfilename,".old");
        for(counter=0;counter<1000000;counter++) {
                fd=open(argv[1], O_CREAT, 600);
                close(fd);
                unlink(argv[1]);        
        }
        return 0;
}

Again, this appears to need to be run from multiple machines at once to cause
the problem (running from 2 dual-ultra 2s running solaris 2.6 in this case).
I will attempt to reproduce it with FreeBSD clients later today.  In the
meantime I am getting down and dirty with the NFS kernel routines.

PS: Please give Matt his privs back.  You *really* don't want me sending
patches to the NFS code ;)

--
David Cross                               | email: cro...@cs.rpi.edu 
Systems Administrator/Research Programmer | Web: http://www.cs.rpi.edu/~crossd 
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 majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to