On 11 December 2009 23:28, Stefan Bethke <stb@lassitu.de>
wrote:> I still sometimes get the "lost" .zfs/snapshot directory, with
resulting panic, and it just happened again. ?I have the full crash dump, if
anyone wants to look at details.
>
> # cd /jail/foo/.zfs
> # ls
> ls: snapshot: Bad file descriptor
> # cd
> # zfs umount tank/jail/foo
> Fatal trap 12: page fault while in kernel mode
> cpuid = 0; apic id = 00
> fault virtual address ? = 0xa8
> fault code ? ? ? ? ? ? ?= supervisor write data, page not present
> instruction pointer ? ? = 0x20:0xffffffff8033fac5
> stack pointer ? ? ? ? ? = 0x28:0xffffff80626cf9d0
> frame pointer ? ? ? ? ? = 0x28:0xffffff80626cf9e0
> 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 ? ? ? ? = 38362 (zfs)
> trap number ? ? ? ? ? ? = 12
> panic: page fault
> cpuid = 0
> Uptime: 7d3h33m46s
> Physical memory: 3313 MB
>
> #0 ?doadump () at pcpu.h:223
> 223 ? ? pcpu.h: No such file or directory.
> ? ? ? ?in pcpu.h
> (kgdb) #0 ?doadump () at pcpu.h:223
> #1 ?0xffffffff80337bd9 in boot (howto=260)
> ? ?at /usr/src/sys/kern/kern_shutdown.c:416
> #2 ?0xffffffff8033802c in panic (fmt=Variable "fmt" is not
available.
> )
> ? ?at /usr/src/sys/kern/kern_shutdown.c:579
> #3 ?0xffffffff805cc2ad in trap_fatal (frame=0xc, eva=Variable
"eva" is not available.
> )
> ? ?at /usr/src/sys/amd64/amd64/trap.c:857
> #4 ?0xffffffff805cc694 in trap_pfault (frame=0xffffff80626cf920,
usermode=0)
> ? ?at /usr/src/sys/amd64/amd64/trap.c:773
> #5 ?0xffffffff805cd06a in trap (frame=0xffffff80626cf920)
> ? ?at /usr/src/sys/amd64/amd64/trap.c:499
> #6 ?0xffffffff805b2943 in calltrap ()
> ? ?at /usr/src/sys/amd64/amd64/exception.S:224
> #7 ?0xffffffff8033fac5 in _sx_xlock (sx=0x90, opts=0,
> ? ?file=0xffffffff80ac1d30
"/usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c",
line=1349) at atomic.h:158
> #8 ?0xffffffff80a53b85 in zfsctl_umount_snapshots (vfsp=Variable
"vfsp" is not available.
> )
> ? ?at
/usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c:1349
> #9 ?0xffffffff80a604f9 in zfs_umount (vfsp=0xffffff00017518d0, fflag=0)
> ? ?at
/usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c:1020
> #10 0xffffffff803c080a in dounmount (mp=0xffffff00017518d0, flags=0,
td=Variable "td" is not available.
> )
> ? ?at /usr/src/sys/kern/vfs_mount.c:1294
> #11 0xffffffff803c1038 in unmount (td=0xffffff002ed50720,
> ? ?uap=0xffffff80626cfbf0) at /usr/src/sys/kern/vfs_mount.c:1179
> #12 0xffffffff805cc906 in syscall (frame=0xffffff80626cfc80)
> ? ?at /usr/src/sys/amd64/amd64/trap.c:989
> #13 0xffffffff805b2c21 in Xfast_syscall ()
> ? ?at /usr/src/sys/amd64/amd64/exception.S:373
> #14 0x0000000800f4ba4c in ?? ()
> Previous frame inner to this frame (corrupt stack?)
> (kgdb)
>
> --
> Stefan Bethke <stb@lassitu.de> ? Fon +49 151 14070811
>
Same trace, when trying to destroy pool with mounted snapshots.
Seen on 7.3-amd64
Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address = 0xc0
fault code = supervisor write data, page not present
instruction pointer = 0x8:0xffffffff80543525
stack pointer = 0x10:0xffffff8107cd79c0
frame pointer = 0x10:0xffffff8107cd79d0
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 = 50534 (zpool)
db> bt
Tracing pid 50534 tid 100409 td 0xffffff005e3ab740
_sx_xlock() at _sx_xlock+0x15
zfsctl_umount_snapshots() at zfsctl_umount_snapshots+0xa5
zfs_umount() at zfs_umount+0xd0
dounmount() at dounmount+0x2c9
unmount() at unmount+0x30a
syscall() at syscall+0x256
Xfast_syscall() at Xfast_syscall+0xab
--- syscall (22, FreeBSD ELF64, unmount), rip = 0x801032cdc, rsp 0x7fffffffaac8,
rbp = 0x801302000 ---
--
wbr,
pluknet