Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 Feb 2006 20:00:25 GMT
From:      Kris Kennaway <kris@obsecurity.org>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: kern/93942: panic: ufs_dirbad: bad dir
Message-ID:  <200602282000.k1SK0P7R086468@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/93942; it has been noted by GNATS.

From: Kris Kennaway <kris@obsecurity.org>
To: Yarema <yds@CoolRat.org>
Cc: FreeBSD-gnats-submit@FreeBSD.org,
	Dennis Koegel <amf@hobbit.neveragain.de>,
	Doug White <dwhite@gumbysoft.com>, Martin Machacek <m@m3a.net>
Subject: Re: kern/93942: panic: ufs_dirbad: bad dir
Date: Tue, 28 Feb 2006 14:53:43 -0500

 On Tue, Feb 28, 2006 at 10:35:36AM -0500, Yarema wrote:
 > 
 > >Number:         93942
 > >Category:       kern
 > >Synopsis:       panic: ufs_dirbad: bad dir
 > >Confidential:   no
 > >Severity:       critical
 > >Priority:       high
 > >Responsible:    freebsd-bugs
 > >State:          open
 > >Quarter:        
 > >Keywords:       
 > >Date-Required:
 > >Class:          sw-bug
 > >Submitter-Id:   current-users
 > >Arrival-Date:   Tue Feb 28 15:40:06 GMT 2006
 > >Closed-Date:
 > >Last-Modified:
 > >Originator:     Yarema <yds@CoolRat.org>
 > >Release:        FreeBSD 6.1-PRERELEASE i386
 > >Organization:
 > >Environment:
 > System: FreeBSD 6.1-PRERELEASE #0: Mon Feb 27 04:52:11 EST 2006 i386
 > 
 > >Description:
 > 
 > This is at least the third file system which got hosed for me by the
 > ufs_dirbad bug on three different hard drives since 5.3 STABLE.
 > I suspect this is related to the following PRs:
 > http://www.FreeBSD.org/cgi/query-pr.cgi?pr=49079
 > http://www.FreeBSD.org/cgi/query-pr.cgi?pr=51001
 > 
 > In every case a process would lock up making the whole system
 > unresponsive.  A reboot, fsck -y in single user mode and another
 > reboot would produce the following during the mount of the corrupt
 > fs in rw mode:
 > 
 > bad dir ino 2 at  offset 16384: mangled entry
 > panic: ufs_dirbad: bad dir
 > cpuid = 0
 > 
 > Another reboot, fsck -y in single user mode and reboot produces the
 > same results repeatedly.  Previously I had recovered by mounting the
 > corrupt fs in ro mode, backup, newfs, restore.
 > 
 > Recently I noticed Matthew Dillon commit the following to the
 > DragonFly src repository:
 > 
 > http://leaf.DragonFlyBSD.org/mailarchive/commits/2006-02/msg00057.html
 > 
 > dillon      2006/02/21 10:46:56 PST
 > 
 > DragonFly src repository
 > 
 >   Modified files:
 >     sys/kern             vfs_cluster.c 
 >   Log:
 >   bioops.io_start() was being called in a situation where the buffer could
 >   be brelse()'d afterwords instead of I/O being initiated.  When this occurs,
 >   the buffer may contain softupdates-modified data which is never reverted,
 >   resulting in serious filesystem corruption.  When io_start is called on a
 >   buffer, I/O MUST be initiated and terminated with a biodone() or the buffer's
 >   data may not be properly reverted.
 >   
 >   Solve the problem by moving the io_start() call a little further on in the
 >   code, after the potential brelse().
 >   
 >   There is a possibility that this bug is responsible for the 'dirbad' panics
 >   often reported in DragonFly and FreeBSD circles.
 >   
 >   Revision  Changes    Path
 >   1.16      +7 -6      src/sys/kern/vfs_cluster.c
 > 
 > http://www.DragonFlyBSD.org/cvsweb/src/sys/kern/vfs_cluster.c.diff?r1=1.15&r2=1.16&f=u
 > 
 > Below is the equivalent patch to the FreeBSD RELENG_6 branch of
 > src/sys/kern/vfs_cluster.c
 > 
 > Hope this helps track down the problem.
 
 Does it work for you? :)
 
 Kris



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