ZFS RAID-Z panic on vdev failure + subsequent panics and hangs
Boris Kochergin
spawk at acm.poly.edu
Fri Aug 7 19:35:11 UTC 2009
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
More information about the freebsd-fs
mailing list