Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 7 Aug 2009 09:44:00 +0200
From:      Pawel Jakub Dawidek <pjd@FreeBSD.org>
To:        Boris Kochergin <spawk@acm.poly.edu>
Cc:        freebsd-fs@freebsd.org
Subject:   Re: ZFS RAID-Z panic on vdev failure + subsequent panics and hangs
Message-ID:  <20090807074400.GB1607@garage.freebsd.pl>
In-Reply-To: <20090807073738.GA1607@garage.freebsd.pl>
References:  <4A78AA71.9050107@acm.poly.edu> <4A78AFB2.10103@acm.poly.edu> <20090805115621.GG1784@garage.freebsd.pl> <4A798A12.4070408@acm.poly.edu> <20090807073738.GA1607@garage.freebsd.pl>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
On Fri, Aug 07, 2009 at 09:37:38AM +0200, Pawel Jakub Dawidek wrote:
> On Wed, Aug 05, 2009 at 09:33:06AM -0400, Boris Kochergin wrote:
> > Fatal trap 12: page fault while in kernel mode
> > fault virtual address   = 0xffffffffffffffe9
> > fault code              = supervisor read data, page not present
> > instruction pointer     = 0x20:0xffffffff8103a9e7
> > stack pointer           = 0x28:0xffffff8077f26430
> > frame pointer           = 0x28:0xffffff8077f26500
> > code segment            = base 0x0, limit 0xfffff, type 0x1b
> >                        = DPL 0, pres 1, long 1, def32 0, gran 1
> > processor eflags        = interrupt enabled, resume, IOPL = 0
> > current process         = 972 (cp)
> [...]
> > /usr/src/sys/amd64/amd64/trap.c:494
> > #11 0xffffffff80854d73 in calltrap () at 
> > /usr/src/sys/amd64/amd64/exception.S:224
> > #12 0xffffffff8103a9e7 in arc_evict (state=Variable "state" is not 
> > available.
> > ) at 
> > /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c:1489
> 
> Could you tell me what do you have at this line in your source? I don't
> think you use HEAD... What exact FreeBSD version are you using?

You already gave version number in your first mail, sorry about that.
8.0-BETA2 should be very close to HEAD (or it actually was HEAD), so I
guess this is the code we are looking at:

1488:		/* "lookahead" for better eviction candidate */
1489:		if (recycle && ab->b_size != bytes &&
1490:		    ab_prev && ab_prev->b_size == bytes)
1491:			continue;

If 'ab' is corrupted it should panic earlier, so it seems ab_prev is
corrupted, can you see what it points to in gdb?

-- 
Pawel Jakub Dawidek                       http://www.wheel.pl
pjd@FreeBSD.org                           http://www.FreeBSD.org
FreeBSD committer                         Am I Evil? Yes, I Am!

[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.4 (FreeBSD)

iD8DBQFKe9tAForvXbEpPzQRAoYQAJ93SwrZRKfO+oIxSIHSGoXPC4MSvQCeKp0b
4R79PwGqH+NIW3oGUYhD1mM=
=Fs3k
-----END PGP SIGNATURE-----

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