Re: ZFS panic (dn-dn_datablkshift != 0) with r256304 and send/recv

2013-10-14 Thread Keith White

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

2013-10-13 Thread Keith White

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

2013-10-13 Thread Andriy Gapon
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,