Public bug reported:

Note: This is different from Launchpad bug #1557151. This is another,
similar, bug.

Bug description from Matt Ahrens at OpenZFS:
"If a ZFS object contains a hole at level one, and then a data block is
 created at level 0 underneath that l1 block, l0 holes will be created.
 However, these l0 holes do not have the birth time property set; as a
 result, incremental sends will not send those holes.

 Fix is to modify the dbuf_read code to fill in birth time data."
-- https://www.illumos.org/issues/6513

>From pcd on IRC in #zfsonlinux:
"basically, what happens is this: if you zero out an entire l1 indirect
 block's worth of data (several megabytes), we save space by storing that
 entire indirect block as a single hole  in an l2 indirect block with
 birth time N.  If you then modify some of the data under that, but not
 all of it, when the l1 indirect block is filled back in with mostly
 holes and some data blocks, the wholes will not have any"

Fixed in ZoL here:
https://github.com/zfsonlinux/zfs/commit/bc77ba73fec82d37c0b57949ec29edd9aa207677

This has *not* been merged into a ZoL release yet, nor the release
branch.

This is a very unfortunate bug because the fix only helps you moving forward. A 
separate bug has been opened to propose a fix for that:
https://www.illumos.org/issues/7175

** Affects: zfs-linux (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to zfs-linux in Ubuntu.
https://bugs.launchpad.net/bugs/1600060

Title:
  ZFS "partially filled holes lose birth time"

Status in zfs-linux package in Ubuntu:
  New

Bug description:
  Note: This is different from Launchpad bug #1557151. This is another,
  similar, bug.

  Bug description from Matt Ahrens at OpenZFS:
  "If a ZFS object contains a hole at level one, and then a data block is
   created at level 0 underneath that l1 block, l0 holes will be created.
   However, these l0 holes do not have the birth time property set; as a
   result, incremental sends will not send those holes.

   Fix is to modify the dbuf_read code to fill in birth time data."
  -- https://www.illumos.org/issues/6513

  From pcd on IRC in #zfsonlinux:
  "basically, what happens is this: if you zero out an entire l1 indirect
   block's worth of data (several megabytes), we save space by storing that
   entire indirect block as a single hole  in an l2 indirect block with
   birth time N.  If you then modify some of the data under that, but not
   all of it, when the l1 indirect block is filled back in with mostly
   holes and some data blocks, the wholes will not have any"

  Fixed in ZoL here:
  
https://github.com/zfsonlinux/zfs/commit/bc77ba73fec82d37c0b57949ec29edd9aa207677

  This has *not* been merged into a ZoL release yet, nor the release
  branch.

  This is a very unfortunate bug because the fix only helps you moving forward. 
A separate bug has been opened to propose a fix for that:
  https://www.illumos.org/issues/7175

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/zfs-linux/+bug/1600060/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to