Subject: Re: 4.99.16 (-current) panic
To: Gert Doering <gert@greenie.muc.de>
From: Juergen Hannken-Illjes <hannken@eis.cs.tu-bs.de>
List: port-sparc64
Date: 04/09/2007 17:40:21
On Mon, Apr 09, 2007 at 05:13:07PM +0200, Gert Doering wrote:
> Hi,
> 
> On Mon, Apr 09, 2007 at 12:42:23PM +0200, Juergen Hannken-Illjes wrote:
> > > If I try to understand the namei() source in kern/vfs_lookup.c, it's
> > > not exactly clear to me what it's complaining about - there are many calls
> > > to a function "VREF()", but they can't all be wrong??!?
> > 
> > If you have a `netbsd.gdb' of this kernel you could try to locate the
> > VREF with gdb `list *(namei+0xb4)'.
> 
> ok.  If I haven't broken anything by doing only a partial recompile
> after enabling "option DEBUG" etc., this is where it dies:
> 
> (gdb) list *(namei+0xb4)
> 0x12369b4 is in namei (/home/src-current/sys/kern/vfs_lookup.c:335).
> 330             if (cnp->cn_pnbuf[0] == '/') {
> 331                     dp = ndp->ni_rootdir;
> 332                     VREF(dp);
> 333             } else {
> 334                     dp = cwdi->cwdi_cdir;
> 335                     VREF(dp);
> 336             }
> 337             vn_lock(dp, LK_EXCLUSIVE | LK_RETRY);
> 338             for (;;) {
> 339                     if (!dp->v_mount) {
> 
> now what to do with that...?
> 
> In case it matters: the machine in question has only FFS file systems, 
> with softdeps enabled.

Strange, this means your current working dir is a vnode with `v_usecount == 0'.
From a quick grep through kern/vfs_syscalls.c this should never happen.

Are you using systrace?

Could you print the vnode from ddb if your machine crashes again?
Which process/command does the lookup?

-- 
Juergen Hannken-Illjes - hannken@eis.cs.tu-bs.de - TU Braunschweig (Germany)