Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Jun 2009 19:59:34 -0700
From:      Kip Macy <kmacy@freebsd.org>
To:        Artem Belevich <fbsdlist@src.cx>
Cc:        freebsd-current@freebsd.org
Subject:   Re: Crash in ZFS during vnode sync
Message-ID:  <3c1674c90906181959m7cf149ccpabb78fa7c0c8247b@mail.gmail.com>
In-Reply-To: <ed91d4a80906161510w2d005868ya090261decf82629@mail.gmail.com>
References:  <ed91d4a80906161510w2d005868ya090261decf82629@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
It looks like you tried to lock a destroyed vnode. Did you get a core?

Cheers,
Kip


On Tue, Jun 16, 2009 at 3:10 PM, Artem Belevich<fbsdlist@src.cx> wrote:
> 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 =3D 3; apic id =3D 03
> fault virtual address =A0 =3D 0xd8
> fault code =A0 =A0 =A0 =A0 =A0 =A0 =A0=3D supervisor write data, page not=
 present
> instruction pointer =A0 =A0 =3D 0x20:0xffffffff80360a35
> stack pointer =A0 =A0 =A0 =A0 =A0 =3D 0x28:0xffffff842cfc8900
> frame pointer =A0 =A0 =A0 =A0 =A0 =3D 0x28:0xffffff842cfc8910
> code segment =A0 =A0 =A0 =A0 =A0 =A0=3D base 0x0, limit 0xfffff, type 0x1=
b
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=3D DPL 0, pres 1, long 1,=
 def32 0, gran 1
> processor eflags =A0 =A0 =A0 =A0=3D interrupt enabled, resume, IOPL =3D 0
> current process =A0 =A0 =A0 =A0 =3D 48 (syncer)
> [thread pid 48 tid 100076 ]
> Stopped at =A0 =A0 =A0_mtx_lock_flags+0x15: =A0 lock cmpxchgq =A0 %rsi,0x=
18(%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 =3D 0, rsp =3D 0xffffff842cfc8d40, rbp =3D 0 ---
>
> db> show lockedbufs
> buf at 0xffffff83c11d8550
> b_flags =3D 0xa00200a0<remfree,vmio,clusterok,delwri,cache>
> b_error =3D 0, b_bufsize =3D 4096, b_bcount =3D 4096, b_resid =3D 0
> b_bufobj =3D (0xffffff0012c7a2f0), b_data =3D 0xffffff83da5fa000, b_blkno
> =3D 19214240, b_dep =3D 0
> b_npages =3D 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
> =A0 =A0usecount 1, writecount 1, refcount 3 mountedhere 0
> =A0 =A0flags ()
> =A0 =A0v_object 0xffffff003d5b47d0 ref 0 pages 1
> =A0 =A0lock type ufs: EXCL by thread 0xffffff0010e85720 (pid 886)
> =A0 =A0 =A0 =A0ino 1201240, on dev ad4s1a
>
> 0xffffff0007db9ce8: tag syncer, type VNON
> =A0 =A0usecount 1, writecount 0, refcount 2 mountedhere 0
> =A0 =A0flags ()
> =A0 =A0lock 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 =3D 0xa00200a0<remfree,vmio,clusterok,delwri,cache>
> b_error =3D 0, b_bufsize =3D 4096, b_bcount =3D 4096, b_resid =3D 0
> b_bufobj =3D (0xffffff0012c7a2f0), b_data =3D 0xffffff83da5fa000, b_blkno
> =3D 19214240, b_dep =3D 0
> b_npages =3D 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 =3D 0xffffffff803605ca, rsp =3D 0xffffff800001bfe0, rb=
p
> =3D 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 =3D 0x80083501c, rsp =3D
> 0x7fffffffcaf8, rbp =3D 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 =3D 0, rsp =3D 0xffffff842cfc8d40, rbp =3D 0 ---
>
>
>
> --Artem
> _______________________________________________
> freebsd-current@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org=
"
>



--=20
When bad men combine, the good must associate; else they will fall one
by one, an unpitied sacrifice in a contemptible struggle.

    Edmund Burke



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3c1674c90906181959m7cf149ccpabb78fa7c0c8247b>