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)