[4467] in Athena Bugs
re: NFS server panic: protection fault
daemon@ATHENA.MIT.EDU (John T Kohl)
Thu Mar 8 09:15:37 1990
Date: Thu, 8 Mar 90 09:15:11 -0500
From: John T Kohl <jtkohl@ATHENA.MIT.EDU>
To: bugs@ATHENA.MIT.EDU, dkk@ATHENA.MIT.EDU, jfc@ATHENA.MIT.EDU
In-Reply-To: [4460]
I looked a bit at the code John Carr pointed to in his earlier message.
I think what is happening is a race between two processes/nfsd's trying
to get the same inode. If I can get access to a crashdump I can
probably confirm this guess:
process 1 runs through the code, and gets as far as NULLing the freelist
pointers in the inode.
process 2 runs through the code, and gets a protection fault.
This seems to happen because the locking protocol is race-prone here:
the lock is checked before removing the inode from the freelist, but the
lock is not obtained until AFTER removing it from the freelist; a
process switch can happen in the interim.
John