Crash in ZFS during vnode sync

From: Artem Belevich <fbsdlist_at_src.cx>
Date: Tue, 16 Jun 2009 15:10:26 -0700
Got a new crash on fresh (as of yesterday) -current/amd64 while the
box was pretty much idle. Haven't seen this one before.

Fatal trap 12: page fault while in kernel mode
cpuid = 3; apic id = 03
fault virtual address	= 0xd8
fault code		= supervisor write data, page not present
instruction pointer	= 0x20:0xffffffff80360a35
stack pointer	        = 0x28:0xffffff842cfc8900
frame pointer	        = 0x28:0xffffff842cfc8910
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		= 48 (syncer)
[thread pid 48 tid 100076 ]
Stopped at      _mtx_lock_flags+0x15:   lock cmpxchgq   %rsi,0x18(%rdi)
db> where
Tracing pid 48 tid 100076 td 0xffffff0007b0a390
_mtx_lock_flags() at _mtx_lock_flags+0x15
vn_rele_async() at vn_rele_async+0x31
zfs_get_data() at zfs_get_data+0xd0
zil_commit() at zil_commit+0x532
zfs_sync() at zfs_sync+0xa6
sync_fsync() at sync_fsync+0x184
VOP_FSYNC_APV() at VOP_FSYNC_APV+0x4a
sync_vnode() at sync_vnode+0x16b
sched_sync() at sched_sync+0x1c9
fork_exit() at fork_exit+0x118
fork_trampoline() at fork_trampoline+0xe
--- trap 0, rip = 0, rsp = 0xffffff842cfc8d40, rbp = 0 ---

db> show lockedbufs
buf at 0xffffff83c11d8550
b_flags = 0xa00200a0<remfree,vmio,clusterok,delwri,cache>
b_error = 0, b_bufsize = 4096, b_bcount = 4096, b_resid = 0
b_bufobj = (0xffffff0012c7a2f0), b_data = 0xffffff83da5fa000, b_blkno
= 19214240, b_dep = 0
b_npages = 1, pages(OBJ, IDX, PA): (0xffffff003d5b47d0, 0x0, 0x3c082000)
lock type bufwait: EXCL by thread 0xffffff0010e85720 (pid 886)

db> show lockedvnods
Locked vnodes

0xffffff0012c7a1d8: tag ufs, type VREG
    usecount 1, writecount 1, refcount 3 mountedhere 0
    flags ()
    v_object 0xffffff003d5b47d0 ref 0 pages 1
    lock type ufs: EXCL by thread 0xffffff0010e85720 (pid 886)
	ino 1201240, on dev ad4s1a

0xffffff0007db9ce8: tag syncer, type VNON
    usecount 1, writecount 0, refcount 2 mountedhere 0
    flags ()
    lock type syncer: EXCL by thread 0xffffff0007b0a390 (pid 48)
db> show vnodebufs
usage: show vnodebufs <addr>
db> show vnodebufs 0xffffff0007db9ce8
Clean buffers:
Dirty buffers:
db> show vnodebufs 0xffffff0012c7a1d8
Clean buffers:
Dirty buffers:
buf at 0xffffff83c11d8550
b_flags = 0xa00200a0<remfree,vmio,clusterok,delwri,cache>
b_error = 0, b_bufsize = 4096, b_bcount = 4096, b_resid = 0
b_bufobj = (0xffffff0012c7a2f0), b_data = 0xffffff83da5fa000, b_blkno
= 19214240, b_dep = 0
b_npages = 1, pages(OBJ, IDX, PA): (0xffffff003d5b47d0, 0x0, 0x3c082000)
lock type bufwait: EXCL by thread 0xffffff0010e85720 (pid 886)

db> bt 886
Tracing pid 886 tid 100183 td 0xffffff0010e85720
cpustop_handler() at cpustop_handler+0x3b
ipi_nmi_handler() at ipi_nmi_handler+0x30
trap() at trap+0x195
nmi_calltrap() at nmi_calltrap+0x8
--- trap 0x13, rip = 0xffffffff803605ca, rsp = 0xffffff800001bfe0, rbp
= 0xffffff842f52b7f0 ---
_mtx_lock_sleep() at _mtx_lock_sleep+0x11a
bdwrite() at bdwrite+0x313
ffs_write() at ffs_write+0x634
VOP_WRITE_APV() at VOP_WRITE_APV+0xc6
vn_write() at vn_write+0x188
dofilewrite() at dofilewrite+0x85
kern_writev() at kern_writev+0x60
writev() at writev+0x41
syscall() at syscall+0x28f
Xfast_syscall() at Xfast_syscall+0xd0
--- syscall (121, FreeBSD ELF64, writev), rip = 0x80083501c, rsp =
0x7fffffffcaf8, rbp = 0 ---
db> bt 48
Tracing pid 48 tid 100076 td 0xffffff0007b0a390
_mtx_lock_flags() at _mtx_lock_flags+0x15
vn_rele_async() at vn_rele_async+0x31
zfs_get_data() at zfs_get_data+0xd0
zil_commit() at zil_commit+0x532
zfs_sync() at zfs_sync+0xa6
sync_fsync() at sync_fsync+0x184
VOP_FSYNC_APV() at VOP_FSYNC_APV+0x4a
sync_vnode() at sync_vnode+0x16b
sched_sync() at sched_sync+0x1c9
fork_exit() at fork_exit+0x118
fork_trampoline() at fork_trampoline+0xe
--- trap 0, rip = 0, rsp = 0xffffff842cfc8d40, rbp = 0 ---



--Artem
Received on Tue Jun 16 2009 - 20:10:27 UTC

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