Project

General

Profile

Bug #4188

assertion failed in dmu_tx_hold_free(): dn_datablkshift != 0

Added by Matthew Ahrens about 6 years ago. Updated almost 6 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Category:
zfs - Zettabyte File System
Start date:
2013-10-07
Due date:
% Done:

100%

Estimated time:
Difficulty:
Bite-size
Tags:
needs-triage

Description

An object with an odd-size data block can end up with direct blocks as a result
of dnode_reallocate() (e.g. via zfs receive). i.e. dn_nlevels > 1 and
dn_datablkshift == 0. This has always been the case.

Code in dmu_tx_hold_free() seemed to assume that we could not get into this
situation. I.e. that if there are indirect blocks, then the data block size
must be a power of 2. The fix for bug 3834 added an assertion to this effect,
which is what we are hitting here.

However, the code in dmu_tx_hold_free() happened to work correctly, and it
seems that the rest of the ZFS code also handles this case correctly. So the
assertion is actually not valid. As such, this bug only effects debug code.

introduced by:

commit 2f3d878000c3b33cde13e16c4f0a1ab15d883a18
Author: Matthew Ahrens <>
Date: Mon Jul 29 10:58:53 2013 -0800

3834 incremental replication of 'holey' file systems is slow
Reviewed by: Adam Leventhal &lt;&gt;
Reviewed by: George Wilson &lt;&gt;
Approved by: Richard Lowe &lt;&gt;

Related issues

Has duplicate illumos gate - Bug #4252: kernel panic with zfs send/receive while upgrading to a vdev with larger ashiftRejected2013-10-21

Actions

History

#1

Updated by Andriy Gapon about 6 years ago

We are running with a trivial patch of just removing the assertion and are not seeing any problems could be considered related.
What is your plan with respect to this issue?

#2

Updated by Matthew Ahrens about 6 years ago

Great to hear that that patch is working. I am working to get it in illumos, hopefully will be in later this week or early next week.

#3

Updated by Igor Kozhukhov about 6 years ago

Matthew Ahrens wrote:

Great to hear that that patch is working. I am working to get it in illumos, hopefully will be in later this week or early next week.

could you please share the patch ?
because i see the same issue with non-DEBUG build as xen PV guest - stuck on install from ISO.
DEBUG build work well.

#4

Updated by Matthew Ahrens about 6 years ago

Igor Kozhukhov wrote:

Matthew Ahrens wrote:

Great to hear that that patch is working. I am working to get it in illumos, hopefully will be in later this week or early next week.

could you please share the patch ?
because i see the same issue with non-DEBUG build as xen PV guest - stuck on install from ISO.
DEBUG build work well.

non-DEBUG builds don't have assertions enabled, so you can't hit this issue there. The patch is simply to remove the assertion (which the non-debug build already does).

--matt

#5

Updated by Christopher Siden almost 6 years ago

  • Status changed from New to Closed
  • % Done changed from 0 to 100
commit bb411a08b05466bfe0c7095b6373bbc1587e259a
Author: Matthew Ahrens <mahrens@delphix.com>
Date:   Sun Dec 1 19:53:18 2013

    4188 assertion failed in dmu_tx_hold_free(): dn_datablkshift != 0
    Reviewed by: George Wilson <george.wilson@delphix.com>
    Reviewed by: Christopher Siden <christopher.siden@delphix.com>
    Approved by: Garrett D'Amore <garrett@damore.org>

Also available in: Atom PDF