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 : [email protected]
Unsubscribe : https://launchpad.net/~kernel-packages
More help : https://help.launchpad.net/ListHelp