Subject: Re: kern/29670: lockmgr: locking against myself
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: Ken Raeburn <raeburn@raeburn.org>
List: netbsd-bugs
Date: 03/26/2005 18:24:02
The following reply was made to PR kern/29670; it has been noted by GNATS.
From: Ken Raeburn <raeburn@raeburn.org>
To: gnats-bugs@netbsd.org
Cc: Ken Raeburn <raeburn@raeburn.org>
Subject: Re: kern/29670: lockmgr: locking against myself
Date: Sat, 26 Mar 2005 13:23:34 -0500
On Mar 21, 2005, at 13:37, Ken Raeburn wrote:
> Another crash (with 2.0+vfs_lookup.c:1.57) in pretty much the same
> place, yesterday morning; here's the stack trace pulled out of the
> message buffer:
This is getting pretty persistent. Two more hangs of this sort since I
sent this mail (plus one odd hang while syncing file systems after I
told it to reboot after I got the table-full message). Very similar
circumstances -- vnode table is reported as full, and then the "locking
against myself" panic in a stat call on
<daily-working-directory>/krb5-current/src/kadmin/testing/krb5-test-
root/krb5.conf. The vnode free list has only one entry, which has
v_flag 0x2100 (VLAYER|VXLOCK). desiredvnodes is 23526, but numvnodes
is a bit larger (30465, 29427). So getnewvnode won't try to allocate a
new node, and getcleanvnode tries only the free list and can't find an
entry without VXLOCK set. (In at least one of these crashes,
vnode_hold_list appears to have some vnodes that would've been useable,
but getcleanvnode only looks at the hold list if the free list is
actually empty.)
The lock that genfs_lock is trying to acquire is already locked via
genfs_lock. Unfortunately, there's no record of where *that* was
called from, or an indication if it's in the current stat call or from
something earlier.
The machine hung, didn't reboot, after the panic; the stack trace shown
by gdb seems to be for the ddb keyboard interrupt in aiodoned process I
used to manually force the crash dump, *not* for the panic; I'm not
sure how to get gdb to see the stack trace reported by the panic
message.
Ken