Re: zfs: Fatal trap 12: page fault while in kernel mode

From: Pawel Jakub Dawidek <pjd_at_FreeBSD.org>
Date: Wed, 29 Jul 2009 10:47:23 +0200
On Tue, Jul 28, 2009 at 12:50:26PM +0300, Andriy Gapon wrote:
> on 27/07/2009 22:58 O. Hartmann said the following:
> > Juergen Unger wrote:
> [snip]
> >>> _sx_xlock(3c,0,874aa28d,70f,8ae9a9f8,...) at _sx_xlock+0x43
> >>> dmu_buf_update_user(0,8ae9a9f8,0,0,0,...) at dmu_buf_update_user+0x35
> >>> zfs_znode_dmu_fini(8ae9a9f8,874b312d,1114,110b,879ab000,...) at zfs_znode_dmu_f3
> >>> zfs_freebsd_reclaim(fcd29c3c,1,0,8ec63754,fcd29c60,...) at zfs_freebsd_reclaim+0
> >>> VOP_RECLAIM_APV(874b65a0,fcd29c3c,0,0,8ec637c8,...) at VOP_RECLAIM_APV+0xa5
> >>> vgonel(8ec637c8,0,80c77037,386,0,...) at vgonel+0x1a4
> >>> vnlru_free(80f2a0f0,0,80c77037,300,3e8,...) at vnlru_free+0x2d5
> >>> vnlru_proc(0,fcd29d38,80c652bc,33e,871932a8,...) at vnlru_proc+0x80
> >>> fork_exit(8090d960,0,fcd29d38) at fork_exit+0xb8
> >>> fork_trampoline() at fork_trampoline+0x8
> [snip]
> > 
> > I see a similar problem on two SMP boxes (is your SMP?), but in my case,
> > it seems not to be ZFS related although I also use ZFS as /home filesystem
> 
> In this case this does seem to be caused by ZFS.
> >From the backtrace we see that _sx_xlock() is called on bogus struct sx pointer
> (0x3c) and this is caused by dmu_buf_update_user() called with NULL first argument
> (dmu_buf_t). Which means that znode_t z_dbuf was NULL - this could have been
> caught by ASSERT in zfs_znode_dmu_fini if it were enabled.
> 
> If you have the crash dump, then it would be interesting to examine znode_t
> structure ('zp' argument) in zfs_znode_dmu_fini.
> 
> P.S. I see that zfs_inactive checks for z_dbuf being NULL and there is the
> following comment:
> /*
>  * The fs has been unmounted, or we did a
>  * suspend/resume and this file no longer exists.
>  */
> Maybe zfs_freebsd_reclaim should do the same?

Yes, you might be right.

Could you guys, who can reproduce it, try this patch:

	http://people.freebsd.org/~pjd/patches/zfs_vnops.c.2.patch

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

Received on Wed Jul 29 2009 - 06:47:18 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:52 UTC