From owner-freebsd-fs@FreeBSD.ORG Fri Aug 7 19:35:10 2009 Return-Path: Delivered-To: freebsd-fs@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F034C1065672 for ; Fri, 7 Aug 2009 19:35:10 +0000 (UTC) (envelope-from spawk@acm.poly.edu) Received: from acm.poly.edu (acm.poly.edu [128.238.9.200]) by mx1.freebsd.org (Postfix) with ESMTP id B79688FC1A for ; Fri, 7 Aug 2009 19:35:10 +0000 (UTC) Received: (qmail 55256 invoked from network); 7 Aug 2009 19:35:09 -0000 Received: from unknown (HELO ?10.0.0.135?) (spawk@128.238.64.31) by acm.poly.edu with AES256-SHA encrypted SMTP; 7 Aug 2009 19:35:09 -0000 Message-ID: <4A7C81CA.2040303@acm.poly.edu> Date: Fri, 07 Aug 2009 15:34:34 -0400 From: Boris Kochergin User-Agent: Thunderbird 2.0.0.19 (X11/20090108) MIME-Version: 1.0 To: Pawel Jakub Dawidek 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> <20090807074400.GB1607@garage.freebsd.pl> <4A7C3002.8000003@acm.poly.edu> <20090807191334.GA1814@garage.freebsd.pl> In-Reply-To: <20090807191334.GA1814@garage.freebsd.pl> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-fs@freebsd.org Subject: Re: ZFS RAID-Z panic on vdev failure + subsequent panics and hangs X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Aug 2009 19:35:11 -0000 Pawel Jakub Dawidek wrote: > On Fri, Aug 07, 2009 at 09:45:38AM -0400, Boris Kochergin wrote: > >> Maybe my kgdb chops aren't up to par, but I can't seem to see what >> ab_prev points to: >> >> (kgdb) up >> #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 >> 1489 if (recycle && ab->b_size != bytes && >> Current language: auto; currently c >> (kgdb) list >> 1484 LBOLT - ab->b_arc_access < >> arc_min_prefetch_lifespan)) { >> 1485 skipped++; >> 1486 continue; >> 1487 } >> 1488 /* "lookahead" for better eviction candidate */ >> 1489 if (recycle && ab->b_size != bytes && >> 1490 ab_prev && ab_prev->b_size == bytes) >> 1491 continue; >> 1492 hash_lock = HDR_LOCK(ab); >> 1493 have_lock = MUTEX_HELD(hash_lock); >> (kgdb) print ab >> $13 = (arc_buf_hdr_t *) 0xffffff0003ebc410 >> (kgdb) print ab->b_size >> $14 = 1 >> (kgdb) print bytes >> $15 = 16384 >> (kgdb) print ab_prev >> No symbol "ab_prev" in current context. >> > > Yeah, that's strange indeed. Could you try: > > print ab->b_arc_node.list_prev > print ab->b_arc_node.list_next > > (kgdb) print ab->b_arc_node.list_prev $1 = (struct list_node *) 0x1 (kgdb) print ab->b_arc_node.list_next $2 = (struct list_node *) 0xffffffff811064f0 -Boris