Hm, at first glance this didn't work with the new kernel and zfsutils- linux package:
root@nsn7:/zfs-test# zfs diff tank/d1@s1 tank/d1 Unable to determine path or stats for object 3 in tank/d1@s1: File exists root@nsn7:/zfs-test# uname -a Linux nsn7 5.3.0-21-generic #22-Ubuntu SMP Tue Oct 29 22:55:51 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux root@nsn7:/zfs-test# dpkg -l|grep linux-image ii linux-image-5.3.0-18-generic 5.3.0-18.19+1 amd64 Signed kernel image generic ii linux-image-5.3.0-19-generic 5.3.0-19.20 amd64 Signed kernel image generic ii linux-image-5.3.0-21-generic 5.3.0-21.22 amd64 Signed kernel image generic ii linux-image-generic 5.3.0.21.24 amd64 Generic Linux kernel image root@nsn7:/zfs-test# This was with the existing pool and dataset from the previous test. Let me try restarting it from scratch: root@nsn7:/zfs-test# cd root@nsn7:~# zpool destroy tank root@nsn7:~# rm -rf /zfs-test/ root@nsn7:~# mkdir /zfs-test root@nsn7:~# cd /zfs-test root@nsn7:/zfs-test# truncate -s 10G file.img root@nsn7:/zfs-test# zpool create -o ashift=12 -O acltype=posixacl -O compression=lz4 -O xattr=sa -O normalization=formD -O dnodesize=auto tank $(pwd)/file.img root@nsn7:/zfs-test# zfs create tank/d1 -o encryption=on -o keyformat=passphrase Enter passphrase: Re-enter passphrase: root@nsn7:/zfs-test# dd if=/dev/urandom bs=4k of=/tank/d1/somedata.bin count=10240 10240+0 records in 10240+0 records out 41943040 bytes (42 MB, 40 MiB) copied, 0,39306 s, 107 MB/s root@nsn7:/zfs-test# zfs snapshot tank/d1@s1 root@nsn7:/zfs-test# dd if=/dev/urandom bs=4k of=/tank/d1/somedata2.bin count=10240 10240+0 records in 10240+0 records out 41943040 bytes (42 MB, 40 MiB) copied, 0,265228 s, 158 MB/s root@nsn7:/zfs-test# zfs diff tank/d1@s1 tank/d1 Unable to determine path or stats for object 3 in tank/d1@s1: File exists root@nsn7:/zfs-test# uname -a Linux nsn7 5.3.0-21-generic #22-Ubuntu SMP Tue Oct 29 22:55:51 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux root@nsn7:/zfs-test# apt-cache policy linux-image-5.3.0-21-generic zfsutils-linux linux-image-5.3.0-21-generic: Installed: 5.3.0-21.22 Candidate: 5.3.0-21.22 Version table: *** 5.3.0-21.22 500 500 http://br.archive.ubuntu.com/ubuntu eoan-proposed/main amd64 Packages 100 /var/lib/dpkg/status zfsutils-linux: Installed: 0.8.1-1ubuntu14.1 Candidate: 0.8.1-1ubuntu14.1 Version table: *** 0.8.1-1ubuntu14.1 500 500 http://br.archive.ubuntu.com/ubuntu eoan-proposed/main amd64 Packages 100 /var/lib/dpkg/status 0.8.1-1ubuntu14 500 500 http://br.archive.ubuntu.com/ubuntu eoan/main amd64 Packages Same thing. -- 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/1849665 Title: zfs diff: Unable to determine path or stats for object Status in zfs-linux package in Ubuntu: Fix Released Status in zfs-linux source package in Eoan: Fix Committed Bug description: == SRU Justification, Eoan == Using zfs diff on an encrypted dataset with large objects one can hit an error such as follows: # zfs diff nsnx/trusty-2a@snap1 nsnx/trusty-2a + /nsnx/trusty-2a/bin Unable to determine path or stats for object 5 in nsnx/trusty-2a@zfs-diff-32359-000000010001f165: File exists == Fix == Upstream commit d359e99c38f667 ("diff_cb() does not handle large dnodes") as addressed in ZFS bug fix: https://github.com/zfsonlinux/zfs/pull/9343 == Testcase == # mkdir /zfs-test # cd /zfs-test # truncate -s 10G file.img # zpool create -o ashift=12 -O acltype=posixacl -O compression=lz4 -O xattr=sa -O normalization=formD -O dnodesize=auto tank $(pwd)/file.img # zfs create tank/d1 -o encryption=on -o keyformat=passphrase Enter passphrase: Re-enter passphrase: # dd if=/dev/urandom bs=4k of=/tank/d1/somedata.bin count=10240 10240+0 records in 10240+0 records out 41943040 bytes (42 MB, 40 MiB) copied, 0,304365 s, 138 MB/s # zfs snapshot tank/d1@s1 # dd if=/dev/urandom bs=4k of=/tank/d1/somedata2.bin count=10240 10240+0 records in 10240+0 records out 41943040 bytes (42 MB, 40 MiB) copied, 0,305324 s, 137 MB/s Without the fix, one hits an error such as: # zfs diff tank/d1@s1 tank/d1 Unable to determine path or stats for object 3 in tank/d1@s1: File exists With the fix, we get: + /tank/d1/somedata2.bin M /tank/d1/ == Regression Potential == This is a minor change in module/zfs/dmu_diff.c and it only affects the zfs diff component, so this should not affect ZFS in terms of file system corruption/data loss. This has also been upstream regression tested and passes the Ubuntu ZFS regressions tests too. So the risk is limited. --------------------- Eoan 19.10 zfsutils-linux 0.8.1-1ubuntu14 kernel 5.3.0-19-generic #20-Ubuntu When using zfs diff on an encrypted dataset, I frequently encounter this error: # zfs diff nsnx/trusty-2a@snap1 nsnx/trusty-2a + /nsnx/trusty-2a/bin Unable to determine path or stats for object 5 in nsnx/trusty-2a@zfs-diff-32359-000000010001f165: File exists I believe this to be upstream bug https://github.com/zfsonlinux/zfs/issues/7678, fixed with https://github.com/zfsonlinux/zfs/pull/9343 Here is one way to reproduce it: # mkdir /zfs-test # cd /zfs-test # truncate -s 10G file.img # zpool create -o ashift=12 -O acltype=posixacl -O compression=lz4 -O xattr=sa -O normalization=formD -O dnodesize=auto tank $(pwd)/file.img # zfs create tank/d1 -o encryption=on -o keyformat=passphrase Enter passphrase: Re-enter passphrase: # dd if=/dev/urandom bs=4k of=/tank/d1/somedata.bin count=10240 10240+0 records in 10240+0 records out 41943040 bytes (42 MB, 40 MiB) copied, 0,304365 s, 138 MB/s # zfs snapshot tank/d1@s1 # dd if=/dev/urandom bs=4k of=/tank/d1/somedata2.bin count=10240 10240+0 records in 10240+0 records out 41943040 bytes (42 MB, 40 MiB) copied, 0,305324 s, 137 MB/s # zfs diff tank/d1@s1 tank/d1 Unable to determine path or stats for object 3 in tank/d1@s1: File exists There may be a simpler way to test this, but this should be enough to start with. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/zfs-linux/+bug/1849665/+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