Re: zfs panic

From: Tom Evans <tevans.uk_at_googlemail.com>
Date: Thu, 24 Jun 2010 09:47:43 +0100
On Wed, Jun 23, 2010 at 10:01 PM, ben wilber <ben_at_desync.com> wrote:
> On Wed, Jun 23, 2010 at 01:47:33PM -0700, Xin LI wrote:
>> >
>> > panic: _sx_xlock_hard: recursed on non-recursive sx buf_hash_table.ht_locks[i].ht_lock _at_ /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/c
>> > ommon/fs/zfs/arc.c:1626
>>
>> Any chance to obtain a backtrace for the panic?
>
> >From r209229:
>
> db:0:kdb.enter.default>  bt
> Tracing pid 3233 tid 100396 td 0xffffff013600f000
> kdb_enter() at kdb_enter+0x3d
> panic() at panic+0x1c8
> _sx_xlock_hard() at _sx_xlock_hard+0x93
> _sx_xlock() at _sx_xlock+0xaa
> arc_buf_remove_ref() at arc_buf_remove_ref+0x7b
> dbuf_rele() at dbuf_rele+0x15d
> zfs_freebsd_reclaim() at zfs_freebsd_reclaim+0xe1
> VOP_RECLAIM_APV() at VOP_RECLAIM_APV+0xe8
> vgonel() at vgonel+0x186
> vnlru_free() at vnlru_free+0x2f4
> vfs_lowmem() at vfs_lowmem+0x31
> kmem_malloc() at kmem_malloc+0x12c
> page_alloc() at page_alloc+0x18
> keg_alloc_slab() at keg_alloc_slab+0xe6
> keg_fetch_slab() at keg_fetch_slab+0x18e
> zone_fetch_slab() at zone_fetch_slab+0x4f
> uma_zalloc_arg() at uma_zalloc_arg+0x56b
> arc_get_data_buf() at arc_get_data_buf+0xaa
> arc_read_nolock() at arc_read_nolock+0x1cb
> arc_read() at arc_read+0x71
> dbuf_read() at dbuf_read+0x4ea
> dmu_buf_hold_array_by_dnode() at dmu_buf_hold_array_by_dnode+0x119
> dmu_buf_hold_array() at dmu_buf_hold_array+0x57
> dmu_read_uio() at dmu_read_uio+0x3f
> zfs_freebsd_read() at zfs_freebsd_read+0x558
> VOP_READ_APV() at VOP_READ_APV+0xe2
> vn_read() at vn_read+0x1d0
> dofileread() at dofileread+0x97
> kern_preadv() at kern_preadv+0x6a
> pread() at pread+0x52
> syscallenter() at syscallenter+0x217
> syscall() at syscall+0x39
> Xfast_syscall() at Xfast_syscall+0xe1
> --- syscall (475, FreeBSD ELF64, pread), rip = 0x80100c14c, rsp = 0x7fffffbfeb48, rbp = 0x2 ---
>
> Thanks.

I notice the traceback is in the UMA zone allocaor. Did it used to be stable?
ZFS recently changed to using the UMA allocator, and I found this made
my system less reliable. Does disabling this help? Add this to
/boot/loader.conf:

vfs.zfs.zio.use_uma=0

Cheers

Tom
Received on Thu Jun 24 2010 - 06:47:45 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:05 UTC