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 ([EMAIL PROTECTED], [EMAIL PROTECTED])
http://www.unixdaemons.com/~hiten/

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

Reply via email to