Date: Sat, 14 Dec 2002 19:51:26 -0500 From: Hiten Pandya <hiten@angelica.unixdaemons.com> To: Lars Eggert <larse@ISI.EDU> Cc: current@FreeBSD.org Subject: Re: NFS-related panic on reboot Message-ID: <20021215005126.GA96067@angelica.unixdaemons.com> In-Reply-To: <3DF52327.9010101@isi.edu> References: <3DF52327.9010101@isi.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Dec 09, 2002 at 03:11:35PM -0800, Lars Eggert wrote the words in effect of: > With today's -current, after typing "reboot" into tcsh: > > NFS append race @0:13 > NFS append race @0:23 > NFS append race @0:13 > NFS append race @0:3 > NFS append race @0:60 > NFS append race @0:168 > NFS append race @0:518 > Stopping cron. > Stopping inetd. > Shutting down daemon processes:. > Shutting down local daemons:. > Writing entropy file:. > [1] Terminated > . [... snipped ...] > Stopped at nfs_removerpc+0x19: movl 0x168(%eax),%eax > db> trace > nfs_removerpc(c74675dc,c6b5ce6c,c,c6b0fc00,0) at nfs_removerpc+0x19 > nfs_removeit(c6b5ce60,0,c6b0fc00,c21b19a0,1) at nfs_removeit+0x30 > nfs_inactive(df0c0aa4,12,c21b19a0,c21b19a0,0) at nfs_inactive+0x8d [... snipped ...] Hi. This problem, is happening (possibly) because nfs_removerpc() is passed a NULL struct thread ("a No No" iirc) by nfs_removeit(). nfs_removerpc() is only called from two places: nfs_removeit() and nfs_remove(): In the case of nfs_remove(), it passes the thread from the "struct compnonentname" (cnp->cn_thread), while nfs_removeit() passes NULL. The problem with this is, that nfs_removeit() passes the thread arg to nfsm_request(), and it dies. Could you try the following patch, if you are still getting this problem: %%% Index: nfs_vnops.c =================================================================== RCS file: /home/hiten/ncvs/src/sys/nfsclient/nfs_vnops.c,v retrieving revision 1.189 diff -u -r1.189 nfs_vnops.c --- nfs_vnops.c 11 Oct 2002 14:58:32 -0000 1.189 +++ nfs_vnops.c 14 Dec 2002 16:25:14 -0000 @@ -1468,7 +1468,7 @@ { return (nfs_removerpc(sp->s_dvp, sp->s_name, sp->s_namlen, sp->s_cred, - NULL)); + curthread)); } /* %%% Cheers. -- Hiten Pandya (hiten@unixdaemons.com, hiten@uk.FreeBSD.org) http://www.unixdaemons.com/~hiten/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021215005126.GA96067>