Subject: Re: panic: lockmgr: release of unlocked lock
To: Bill Studenmund <wrstuden@netbsd.org>
From: Manuel Bouyer <bouyer@antioche.lip6.fr>
List: tech-kern
Date: 01/11/2005 18:02:00
On Mon, Jan 10, 2005 at 01:35:51PM -0800, Bill Studenmund wrote:
> On Sat, Jan 08, 2005 at 01:25:23PM +0100, Manuel Bouyer wrote:
> > Hi,
> > I just got this on a 2.0/alpha system doing a bulk build:
> > panic: lockmgr: release of unlocked lock!
> > db> tr
> > cpu_Debugger() at netbsd:cpu_Debugger+0x4
> > panic() at netbsd:panic+0x1f8
> > lockmgr() at netbsd:lockmgr+0x308
> > layer_unlock() at netbsd:layer_unlock+0x98
> > VOP_UNLOCK() at netbsd:VOP_UNLOCK+0x3c
> > vput() at netbsd:vput+0x5c
> > lookup() at netbsd:lookup+0x44c
> 
> Can you get a line number for the above?

It's the 2.0 GENERIC:
NetBSD folk.lip6.fr 2.0 NetBSD 2.0 (GENERIC) #0: Tue Nov 30 21:04:03 UTC 2004  builds@build:/big/builds/ab/netbsd-2-0-RELEASE/alpha/200411300000Z-obj/big/builds/ab/netbsd-2-0-RELEASE/src/sys/arch/alpha/compile/GENERIC alpha

I can rebuild the kernel with -g if it helps. Would the cross-gdb in src/tools
work from i386 on an alpha kernel ?

> 
> > Just before the panic there is:
> > vnode: table is full - increase kern.maxvnodes or NVNODE
> > 
> > I don't know if it's related or not.
> 
> It might be. Please also put a diagnostic printf() near line 473 of 
> layerfs_lookup(), in the if (error) case just after layer_node_create(). 
> There may be an inconsistency in how we handle an error in case that 
> create fails.

What kind of diagnostic do you have in mind ? I'm sorry, but I don't know
this part of the code so I don't know what to check ...
--
Manuel Bouyer, LIP6, Universite Paris VI.           Manuel.Bouyer@lip6.fr
     NetBSD: 26 ans d'experience feront toujours la difference
--