Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 2 Jun 2006 12:50:35 -0400
From:      Kris Kennaway <kris@obsecurity.org>
To:        Wilko Bulte <wb@freebie.xs4all.nl>
Cc:        freebsd-stable@FreeBSD.org, Robert Watson <rwatson@FreeBSD.org>, freebsd-alpha@FreeBSD.org
Subject:   Re: 6.1-RELEASE panic / lockmgr?
Message-ID:  <20060602165035.GA67889@xor.obsecurity.org>
In-Reply-To: <20060602164132.GA8376@freebie.xs4all.nl>
References:  <20060601212736.GA3380@freebie.xs4all.nl> <20060601230007.C69345@fledge.watson.org> <20060602164132.GA8376@freebie.xs4all.nl>

next in thread | previous in thread | raw e-mail | index | archive | help

--RnlQjJ0d97Da+TV1
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Fri, Jun 02, 2006 at 06:41:32PM +0200, Wilko Bulte wrote:
> On Thu, Jun 01, 2006 at 11:01:07PM +0100, Robert Watson wrote..
> >=20
> > On Thu, 1 Jun 2006, Wilko Bulte wrote:
> >=20
> > >My dual-CPU DS20 Alpha box can more or less consistently be
> > >forced into a panic like:
> > >
> > >FreeBSD/alpha (goldrush.wbnet) (ttyd0)^
> > >
> > >login: panic: lockmgr: thread 0xfffffc007d9d4a80, not exclusive lock h=
older
> > >0xfffffc006052d260 unlocking
> > >cpuid =3D 1
> > >KDB: enter: panic
> > >
> > >Trigger is a "make -j2 release".  j2 seems to be needed, not seen it w=
ith
> > >-j1
> > >
> > >Unfortunately after printing the line with "KDB" the whole thing appea=
rs=20
> > >to become completely catatonic :(
> >=20
> > Try putting a call to critical_enter() towards the beginning of panic()=
.=20
> > Sometimes this increases the reliability of entering the debugger by=20
> > avoiding interrupt delivery during the process of entering.  If you wan=
t to=20
> > be able to continue out, you'll need a critical_exit() at the end, but =
that=20
> > generally isn't helpful for panic().
>=20
> Jay! ANother one, and this one entered the debugger alright:
>=20
> racing pid 25497 tid 100147 td 0xfffffc004df56000
> kdb_enter() at kdb_enter+0x48
> panic() at panic+0x210
> lockmgr() at lockmgr+0x798
> vop_stdunlock() at vop_stdunlock+0x34
> VOP_UNLOCK_APV() at VOP_UNLOCK_APV+0x84
> vput() at vput+0xb4
> lookup() at lookup+0xd38
> namei() at namei+0x554
> do_execve() at do_execve+0x17c
> kern_execve() at kern_execve+0x160
> execve() at execve+0x60
> syscall() at syscall+0x438
> XentSys() at XentSys+0x64
> --- syscall (59, FreeBSD ELF64, execve) ---
> --- user mode ---
> db>=20
>=20
> How to proceed here?  I have 0 clue on lockmgr & friends :)

Enable DEBUG_VFS_LOCKS and DEBUG_LOCKS, then use 'show lockedvnods' to
find what other thread(s) is holding locks, and also trace them with
'tr <pid/tid>'

Kris

--RnlQjJ0d97Da+TV1
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (FreeBSD)

iD8DBQFEgGxbWry0BWjoQKURAm5bAKDNV/+oWfDLhMA9Bp3aBuFsTeeMpQCg+lyM
q4hklpQNS21wUm+x4nM6mDA=
=4MeK
-----END PGP SIGNATURE-----

--RnlQjJ0d97Da+TV1--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060602165035.GA67889>