Date: Tue, 10 Sep 2002 16:53:11 -0400 (EDT) From: Robert Watson <rwatson@FreeBSD.ORG> To: Bruce Evans <bde@zeta.org.au> Cc: Don Lewis <dl-freebsd@catspoiler.org>, current@FreeBSD.ORG, jeff@FreeBSD.ORG Subject: Re: vnode lock assertion problem in nfs_link() Message-ID: <Pine.NEB.3.96L.1020910165217.95428F-100000@fledge.watson.org> In-Reply-To: <20020911060453.C3443-100000@gamplex.bde.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 11 Sep 2002, Bruce Evans wrote: > On Tue, 10 Sep 2002, Robert Watson wrote: > > > ... Also, last time I tried to use the ddb > > show lockedvnods command, I got the problem attached below due to locking > > issues, which makes it a lot harder to debug locking problems... > > > > Robert N M Watson FreeBSD Core Team, TrustedBSD Projects > > robert@fledge.watson.org Network Associates Laboratories > > > > db> show lockedvnods > > Locked vnodes > > panic: blockable sleep lock (sleep mutex) mountlist @ > > ../../../kern/vfs_subr.c:2621 > > Debugger("panic") > > Try removing all the locking in the command. ddb commands can't use > locking. I have printfs in _mtx_lock_flags(), _mtx_lock_spin_flags(), > _mtx_lock_sleep() and _mtx_lock_spin() to detect locking when ddb is > active. > > The error handling would be better if trap_fatal() were called before > panic panic(), like it is for null pointer panics. ddb on i386's then > notices that it shot itself and longjmps to its entry point. This > handles things like reading through garbage pointers OK, but not > external state changes like locking. Maybe my printfs should be > trap_fatals or or direct longjmps. I'll try removing the locking tonight sometime. Yeah, the other frustrating thing about this particular panic is that there is no way to recover from it if you just broke to ddb for the purposes of checking locks, because the panic hoses the ddb state, which in this case is highly unfortunate. Thanks, Robert N M Watson FreeBSD Core Team, TrustedBSD Projects robert@fledge.watson.org Network Associates Laboratories To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.NEB.3.96L.1020910165217.95428F-100000>