Date: Fri, 25 Jan 2008 22:15:24 -0600 From: "Scot Hetzel" <swhetzel@gmail.com> To: "Attilio Rao" <attilio@freebsd.org> Cc: freebsd-current@freebsd.org Subject: Re: panic: System call lstat returning with 1 locks held Message-ID: <790a9fff0801252015l34f524d1k704fa0accffe2545@mail.gmail.com> In-Reply-To: <3bbf2fe10801240518i6e18b2f5w84de652d4170c95b@mail.gmail.com> References: <790a9fff0801150552l542a4238ofc12efe5fdb45fc2@mail.gmail.com> <20080115143924.GB57756@deviant.kiev.zoral.com.ua> <20080124122808.GA15600@freefall.freebsd.org> <3bbf2fe10801240518i6e18b2f5w84de652d4170c95b@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 1/24/08, Attilio Rao <attilio@freebsd.org> wrote: > 2008/1/24, Yar Tikhiy <yar@freebsd.org>: > > On Tue, Jan 15, 2008 at 04:39:24PM +0200, Kostik Belousov wrote: > > > > > > I think this could be related to the recent vn_lock()/VOP_LOCK() KPI changes. > > > Please, add DEBUG_VFS_LOCKS to the kernel config, and do the > > > show lockedvnods > > > from the ddb prompt when the panic occurs. The witness does not track > > > the lockmgr locks. > > > > I think I'm seeing the same panic on UFS. It's rather nasty: I > > cannot rebuild CURRENT natively due to it so I have to build it > > under 6-STABLE. My favourite way to trigger the panic reliably is > > running `make install' in a simple port directory, e.g., portmaster, > > but my system also panics during daily scripts run and, as already > > said, if trying to build world. > > Yar, > as it seems reproducible for you, can you please add this patch to the tree: > http://www.freebsd.org/~attilio/debug_tdlocks.diff > > compile your kernel with: > options KTR > options KTR_COMPILE=(KTR_SPARE2) > options KTR_MASK=(KTR_SPARE2) > options KTR_ENTRIES=32768 > > and once kernel panics, at ddb prompts do: > > show ktr > I added the above options to my kernel, and performed a scripted textdump. /sbin/ddb script lockinfo="show locks; show alllocks; show lockedvnods" /sbin/ddb script kdb.enter.panic="textdump set; capture on; show ktr ; run lockinfo ; show pcpu; bt; ps; alltrace; capture off; call doadump; reset" After the kernel paniced, the kdb.enter.panic script ran and created a textdump. When I extracted the 2.7M ddb.txt file, it didn't show any calls to lockmgr_disown in the ktr trace. Let me know if there is anything else that I can do. To get this dump, DB_CAPTURE_MAXBUFSIZE (sys/ddb/db_capture.c) needed to be increased from its default of 512K to 5M, and then setting the debug.ddb.capure.bufsize to 5M after rebooting with the new kernel. See PR 119993 (http://www.freebsd.org/cgi/query-pr.cgi?pr=119993) which adds two new kernel options to allow the capture buffer size to be changed at compile time. Scot
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?790a9fff0801252015l34f524d1k704fa0accffe2545>