[4460] in Athena Bugs

home help back first fref pref prev next nref lref last post

NFS server panic: protection fault

daemon@ATHENA.MIT.EDU (John Carr)
Thu Mar 8 06:37:07 1990

To: bugs@ATHENA.MIT.EDU
Cc: dkk@ATHENA.MIT.EDU
Date: Thu, 08 Mar 90 06:36:48 EST
From: John Carr <jfc@ATHENA.MIT.EDU>

The VAX 3x00 nfs servers panic at intervals of weeks to months with a
"protection fault".  This is consistently in the following lines in iget()
(file sys/ufs/ufs_inode.c):

			/*
			 * If inode is on free list, remove it.
			 */
			if ((ip->i_flag & IREF) == 0) {
				if (iq = ip->i_freef)
					iq->i_freeb = ip->i_freeb;
				else
					ifreet = ip->i_freeb;
				*ip->i_freeb = iq;     <------- here ------<<
				ip->i_freef = NULL;
				ip->i_freeb = NULL;
			}

Looking at the inode pointer, the field "i_freeb" is NULL:

8009ab58:
                chain[0]        chain[1]
                800857f4        800857f4
8009ab60:       v_flag  count   shlc    exlc    vfs mnt         v_op
                0       0       0       0       0               80074a68

8009ab70:       v_socket        v_vfsp          v_type          dev
                0               80d92534        1               0160560
8009ab80:       v_data          v_text
                8009ab58        0
8009ab88:       devvp           flag    dev     inode           diroff
                80d92550        0       04434   35242           0

8009ab98:       fs              dquot           lastr/sock
                80490200        800af2dc        0
8009aba4:       i_freef         i_freeb
                0               0
8009abac:       mode    links   uid     gid
                0100600 1       10274   11342


It would not surprise me if this were the first time we were exercising this
code, considering that our server usage has grown much faster than the
kernel table sizes.

Suggestion: if there are to be different kernels for each machine type, make
the VAX 3600 kernel have MAXUSERS 32 to get larger inode and other tables.

home help back first fref pref prev next nref lref last post