NetBSD Problem Report #47817
From nick@zoom.localdomain Wed May 15 08:07:55 2013
Return-Path: <nick@zoom.localdomain>
Received: from mail.netbsd.org (mail.netbsd.org [149.20.53.66])
by www.NetBSD.org (Postfix) with ESMTP id 2782663F099
for <gnats-bugs@gnats.NetBSD.org>; Wed, 15 May 2013 08:07:55 +0000 (UTC)
Message-Id: <20130515065159.54D4753F65@zoom.localdomain>
Date: Wed, 15 May 2013 07:51:59 +0100 (BST)
From: nick.hudson@gmx.co.uk
Reply-To: nick.hudson@gmx.co.uk
To: gnats-bugs@NetBSD.org
Subject: procfs related panic
X-Send-Pr-Version: 3.95
>Number: 47817
>Category: kern
>Synopsis: procfs related panic
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed May 15 08:10:01 +0000 2013
>Last-Modified: Mon Oct 07 03:10:01 +0000 2013
>Originator: Nick Hudson
>Release: NetBSD 6.99.19
>Organization:
N/A
>Environment:
System: NetBSD zoom 6.99.19 NetBSD 6.99.19 (GENERIC) #3: Sun May 5 11:38:19 BST 2013 nick@zoom:/wrk/obj/amd64/usr/src/sys/arch/amd64/compile/GENERIC amd64
Architecture: x86_64
Machine: amd64
>Description:
panic: kernel diagnostic assertion "vp->v_usecount != 0" failed: file "/usr/src/sys/kern/vfs_vnode.c", line 924
cpu0: Begin traceback...
vpanic() at netbsd:vpanic+0x136
kern_assert() at netbsd:kern_assert+0x48
vref() at netbsd:vref+0x7e
getcwd_common() at netbsd:getcwd_common+0x6a
procfs_dir.clone.0() at netbsd:procfs_dir.clone.0+0xcd
procfs_readlink() at netbsd:procfs_readlink+0x172
VOP_READLINK() at netbsd:VOP_READLINK+0x37
namei_tryemulroot() at netbsd:namei_tryemulroot+0x965
namei() at netbsd:namei+0x2b
fd_nameiat.clone.0() at netbsd:fd_nameiat.clone.0+0x54
do_sys_accessat() at netbsd:do_sys_accessat+0xbd
syscall() at netbsd:syscall+0x94
--- syscall (number 33) ---
7f7ff3eacd9a:
>How-To-Repeat:
Do stuff.
>Fix:
yes please.
>Release-Note:
>Audit-Trail:
From: David Holland <dholland-bugs@netbsd.org>
To: gnats-bugs@NetBSD.org
Cc:
Subject: Re: kern/47817: procfs related panic
Date: Mon, 7 Oct 2013 03:07:09 +0000
On Wed, May 15, 2013 at 08:10:01AM +0000, nick@zoom.localdomain wrote:
> panic: kernel diagnostic assertion "vp->v_usecount != 0" failed: file "/usr/src/sys/kern/vfs_vnode.c", line 924
This panic means that a vnode with no references has been vref'd,
which you aren't supposed to do (it requires vget instead). I think
either this is a manifestation of one of the vnode lifecycle
conditions that hannken@ fixed recently (the one where vget could in
some circumstances return a blank vnode) ... or it indicates a
vnode refcounting problem in mounts or cwd/chroot logic. The latter is
possible of course but doesn't seem too likely.
Since the call chain goes through procfs_readlink and procfs_dir, the
vnode it's tripping on must be the target process's current dir, root
dir, or executable image... or a mount point getcwd crosses while
getcwd'ing one of these. It can't be a procfs vnode, as procfs refuses
to do that. (See PR 40549.)
I suspect it's the blank vnode issue and that this problem will be no
longer reproducible -- was it ever reproducible?
Another option is that it's somehow a manifestation of the same
problem as 40549, but I don't immediately see how.
--
David A. Holland
dholland@netbsd.org
>Unformatted:
(Contact us)
$NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.