Date: Sat, 13 Dec 2003 20:16:07 -0800 From: Peter Wemm <peter@wemm.org> To: Bruce Cran <bruce@cran.org.uk> Cc: freebsd-current@freebsd.org Subject: Re: panic: getnewvnode: free vnode isn't Message-ID: <20031214041607.EE27B2A8D5@canning.wemm.org> In-Reply-To: <20031213232156.GA656@buffy.brucec.backnet>
next in thread | previous in thread | raw e-mail | index | archive | help
Bruce Cran wrote: > > --G4iJoqBmSsgzjUCe > Content-Type: text/plain; charset=us-ascii > Content-Disposition: inline > > On Sat, Dec 13, 2003 at 05:00:47PM +0000, Ian Dowse wrote: > > In message <20031210234538.GA746@buffy.brucec.backnet>, Bruce Cran writes: > > >#10 0xc04bb923 in panic (fmt=0xc05f16d7 "getnewvnode: free vnode isn't") > > > at /usr/src/sys/kern/kern_shutdown.c:534 > > >#11 0xc0500fb5 in getnewvnode (tag=0xc05f432f "ufs", mp=0xc43f2000, vops=0 x0, > > > vpp=0x0) at /usr/src/sys/kern/vfs_subr.c:1004 > > > > Could people seeing this panic try the following patch? I haven't > > thought through this in much detail, but it seems that vnodes should > > be removed from the free list before being cleaned. The addition > > of the VI_DOINGINACT test about a year ago probably made this panic > > more likely, but I don't know why it has suddenly cropped up recently. > > > > Jeff, does this look reasonable to you? It seems that while most > > callers of vclean() ensure that the vnode is not on the free list, > > some direct users of vgone/vgonel do not (e.g. vflush, vrecycle). > > This could result in a vnode being on the free list while it is > > being recycled. BTW, I think we may no longer need to increment the > > reference count in vclean(), and the comment about VOP_INACTIVE > > before the VOP_LOCK() call is no longer accurate. > > > > I guess it's possible that this could also affect the sysinstall > > crash, but that is probably unlikely. > > > > The patch hasn't stopped the panics, but I've tracked down a series of > actions which can trigger it fairly reliably. Firstly, the new code is run > after mounting the root filesystem (once), on shutdown lots of times, > once when I plug the USB Speedtouch 330 modem (ugen0) in (only if 'ppp > -ddial' is already running), and twice > when modem_run from the speedtouch port is run. I ran a stress test of my > system, compiling world, uncompressing archives, cvsupping etc > while the modem was plugged in. I unplugged the modem, > plugged it back in, got the 'ugenread: no pipe' messages, ran modem_run > again and ppp picked up the connection again. I then ran 'du -h /usr/src' > and after a second the system paniced. Hmm. I've been going nuts with this for the last few days. I hadn't seen it before the last few days. The key variable that has changed here is that I've just started using USB keyboard/mouse and a KVM. I've been having huge problems with the kvm, so devices have been coming and going all the time. And now that I think about it, I have had a couple of these happen when cvsup runs from cron just after I've switched the kvm from one machine to another... I wonder if there is a devfs factor here with devices coming and going? Or maybe its usb rather than devfs? Does anybody else see this sort of thing? Cheers, -Peter -- Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com "All of this is for nothing if we don't go to the stars" - JMS/B5
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20031214041607.EE27B2A8D5>