Re: ZFS panic (dn-dn_datablkshift != 0) with r256304 and send/recv
On Mon, 14 Oct 2013, Andriy Gapon wrote: on 14/10/2013 03:34 Keith White said the following: I get the following assert failure with a recent current: panic: solaris assert: dn-dn_datablkshift != 0, file: /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c, line: 638 Please see https://www.illumos.org/issues/4188 The current best known fix is to simply drop the assertion. ... Thanks! It works for me. Receive completes, and filesystems compare the same. Index: /usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c === --- /usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c (revision 256304) +++ /usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c (working copy) @@ -635,7 +635,7 @@ uint64_t start = off shift; uint64_t end = (off + len) shift; - ASSERT(dn-dn_datablkshift != 0); + /* XXX may be false alarm: ASSERT(dn-dn_datablkshift != 0); XXX */ ASSERT(dn-dn_indblkshift != 0); zio = zio_root(tx-tx_pool-dp_spa, Though, I am not entirely sure if this will be the final solution. I'll double-check with Matt. ...keith ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org
ZFS panic (dn-dn_datablkshift != 0) with r256304 and send/recv
I get the following assert failure with a recent current: panic: solaris assert: dn-dn_datablkshift != 0, file: /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c, line: 638 # uname -a FreeBSD freebsd10 11.0-CURRENT FreeBSD 11.0-CURRENT #0 r256304: Thu Oct 10 19:38:55 EDT 2013 kwhite@freebsd10:/tank/obj/usr/src/sys/GENERIC amd64 # kgdb /boot/kernel/kernel /var/crash/vmcore.last GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type show copying to see the conditions. There is absolutely no warranty for GDB. Type show warranty for details. This GDB was configured as amd64-marcel-freebsd... Unread portion of the kernel message buffer: ... 118# zfs send -vi tank/RPI@20131004 tank/RPI@20131013 | zfs recv -vF m_tank/RPI@20131013 118send from @20131004 to tank/RPI@20131013 estimated size is 85.0M 118total estimated size is 85.0M 118TIMESENT SNAPSHOT 118receiving incremental stream of tank/RPI@20131013 into m_tank/RPI@20131013 11819:45:12 5.90M tank/RPI@20131013 11819:45:13 36.4M tank/RPI@20131013 11819:45:15 38.4M tank/RPI@20131013 11819:45:16 41.3M tank/RPI@20131013 panic: solaris assert: dn-dn_datablkshift != 0, file: /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c, line: 638 cpuid = 0 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfe00977711a0 kdb_backtrace() at kdb_backtrace+0x39/frame 0xfe0097771250 vpanic() at vpanic+0x126/frame 0xfe0097771290 panic() at panic+0x43/frame 0xfe00977712f0 assfail() at assfail+0x22/frame 0xfe0097771300 dmu_tx_hold_free() at dmu_tx_hold_free+0x162/frame 0xfe00977713e0 dmu_free_long_range() at dmu_free_long_range+0x244/frame 0xfe0097771450 dmu_free_long_object() at dmu_free_long_object+0x1f/frame 0xfe0097771480 dmu_recv_stream() at dmu_recv_stream+0x86e/frame 0xfe00977716b0 zfs_ioc_recv() at zfs_ioc_recv+0x96c/frame 0xfe0097771920 zfsdev_ioctl() at zfsdev_ioctl+0x54a/frame 0xfe00977719c0 devfs_ioctl_f() at devfs_ioctl_f+0xf0/frame 0xfe0097771a20 kern_ioctl() at kern_ioctl+0x2ca/frame 0xfe0097771a90 sys_ioctl() at sys_ioctl+0x11f/frame 0xfe0097771ae0 amd64_syscall() at amd64_syscall+0x265/frame 0xfe0097771bf0 Xfast_syscall() at Xfast_syscall+0xfb/frame 0xfe0097771bf0 --- syscall (54, FreeBSD ELF64, sys_ioctl), rip = 0x8019f49ca, rsp = 0x7fff9438, rbp = 0x7fff94c0 --- KDB: enter: panic Uptime: 7m30s ... (kgdb) where #0 doadump (textdump=1) at pcpu.h:219 #1 0x808b88b7 in kern_reboot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:447 #2 0x808b8dc5 in vpanic (fmt=value optimized out, ap=value optimized out) at /usr/src/sys/kern/kern_shutdown.c:754 #3 0x808b8e13 in panic (fmt=value optimized out) at /usr/src/sys/kern/kern_shutdown.c:683 #4 0x81dd1222 in assfail (a=value optimized out, f=value optimized out, l=value optimized out) at /usr/src/sys/modules/opensolaris/../../cddl/compat/opensolaris/kern/opensolaris_cmn_err.c:81 #5 0x81c847c2 in dmu_tx_hold_free (tx=0xf800118bda00, object=value optimized out, off=value optimized out, len=value optimized out) at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c:638 #6 0x81c78124 in dmu_free_long_range (os=0xf8000580f000, object=value optimized out, offset=0, length=18446744073709551615) at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c:654 #7 0x81c781df in dmu_free_long_object (os=0xf8000580f000, object=66055) at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c:700 #8 0x81c7c39e in dmu_recv_stream (drc=0xfe0097771728, fp=value optimized out, voffp=0xfe0097771718, cleanup_fd=8, action_handlep=value optimized out) at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c:1289 #9 0x81d0a1fc in zfs_ioc_recv (zc=0xfe000183) at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c:4102 #10 0x81d054ea in zfsdev_ioctl (dev=value optimized out, zcmd=value optimized out, arg=value optimized out, flag=value optimized out, td=value optimized out) at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c:5960 #11 0x807b0d40 in devfs_ioctl_f (fp=0xf80005304dc0, com=3222821403, data=0xf800027abc40, cred=value optimized out, td=0xf8000524f000) at /usr/src/sys/fs/devfs/devfs_vnops.c:757 #12 0x8090ffea in kern_ioctl (td=0xf8000524f000, fd=value optimized out, com=0) at file.h:319 #13 0x8090fccf in sys_ioctl (td=0xf8000524f000, uap=0xfe0097771b80) at
Re: ZFS panic (dn-dn_datablkshift != 0) with r256304 and send/recv
on 14/10/2013 03:34 Keith White said the following: I get the following assert failure with a recent current: panic: solaris assert: dn-dn_datablkshift != 0, file: /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c, line: 638 Please see https://www.illumos.org/issues/4188 The current best known fix is to simply drop the assertion. Though, I am not entirely sure if this will be the final solution. I'll double-check with Matt. # uname -a FreeBSD freebsd10 11.0-CURRENT FreeBSD 11.0-CURRENT #0 r256304: Thu Oct 10 19:38:55 EDT 2013 kwhite@freebsd10:/tank/obj/usr/src/sys/GENERIC amd64 # kgdb /boot/kernel/kernel /var/crash/vmcore.last GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type show copying to see the conditions. There is absolutely no warranty for GDB. Type show warranty for details. This GDB was configured as amd64-marcel-freebsd... Unread portion of the kernel message buffer: ... 118# zfs send -vi tank/RPI@20131004 tank/RPI@20131013 | zfs recv -vF m_tank/RPI@20131013 118send from @20131004 to tank/RPI@20131013 estimated size is 85.0M 118total estimated size is 85.0M 118TIMESENT SNAPSHOT 118receiving incremental stream of tank/RPI@20131013 into m_tank/RPI@20131013 11819:45:12 5.90M tank/RPI@20131013 11819:45:13 36.4M tank/RPI@20131013 11819:45:15 38.4M tank/RPI@20131013 11819:45:16 41.3M tank/RPI@20131013 panic: solaris assert: dn-dn_datablkshift != 0, file: /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c, line: 638 cpuid = 0 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfe00977711a0 kdb_backtrace() at kdb_backtrace+0x39/frame 0xfe0097771250 vpanic() at vpanic+0x126/frame 0xfe0097771290 panic() at panic+0x43/frame 0xfe00977712f0 assfail() at assfail+0x22/frame 0xfe0097771300 dmu_tx_hold_free() at dmu_tx_hold_free+0x162/frame 0xfe00977713e0 dmu_free_long_range() at dmu_free_long_range+0x244/frame 0xfe0097771450 dmu_free_long_object() at dmu_free_long_object+0x1f/frame 0xfe0097771480 dmu_recv_stream() at dmu_recv_stream+0x86e/frame 0xfe00977716b0 zfs_ioc_recv() at zfs_ioc_recv+0x96c/frame 0xfe0097771920 zfsdev_ioctl() at zfsdev_ioctl+0x54a/frame 0xfe00977719c0 devfs_ioctl_f() at devfs_ioctl_f+0xf0/frame 0xfe0097771a20 kern_ioctl() at kern_ioctl+0x2ca/frame 0xfe0097771a90 sys_ioctl() at sys_ioctl+0x11f/frame 0xfe0097771ae0 amd64_syscall() at amd64_syscall+0x265/frame 0xfe0097771bf0 Xfast_syscall() at Xfast_syscall+0xfb/frame 0xfe0097771bf0 --- syscall (54, FreeBSD ELF64, sys_ioctl), rip = 0x8019f49ca, rsp = 0x7fff9438, rbp = 0x7fff94c0 --- KDB: enter: panic Uptime: 7m30s ... (kgdb) where #0 doadump (textdump=1) at pcpu.h:219 #1 0x808b88b7 in kern_reboot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:447 #2 0x808b8dc5 in vpanic (fmt=value optimized out, ap=value optimized out) at /usr/src/sys/kern/kern_shutdown.c:754 #3 0x808b8e13 in panic (fmt=value optimized out) at /usr/src/sys/kern/kern_shutdown.c:683 #4 0x81dd1222 in assfail (a=value optimized out, f=value optimized out, l=value optimized out) at /usr/src/sys/modules/opensolaris/../../cddl/compat/opensolaris/kern/opensolaris_cmn_err.c:81 #5 0x81c847c2 in dmu_tx_hold_free (tx=0xf800118bda00, object=value optimized out, off=value optimized out, len=value optimized out) at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c:638 #6 0x81c78124 in dmu_free_long_range (os=0xf8000580f000, object=value optimized out, offset=0, length=18446744073709551615) at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c:654 #7 0x81c781df in dmu_free_long_object (os=0xf8000580f000, object=66055) at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c:700 #8 0x81c7c39e in dmu_recv_stream (drc=0xfe0097771728, fp=value optimized out, voffp=0xfe0097771718, cleanup_fd=8, action_handlep=value optimized out) at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c:1289 #9 0x81d0a1fc in zfs_ioc_recv (zc=0xfe000183) at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c:4102 #10 0x81d054ea in zfsdev_ioctl (dev=value optimized out, zcmd=value optimized out, arg=value optimized out, flag=value optimized out, td=value optimized out) at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c:5960 #11 0x807b0d40 in devfs_ioctl_f (fp=0xf80005304dc0, com=3222821403,