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

Keith White kwhite at site.uottawa.ca
Mon Oct 14 12:10:42 UTC 2013


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


More information about the freebsd-current mailing list