** Description changed:
+ == 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.
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1849665
Title:
zfs diff: Unable to determine path or stats for object
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/zfs-linux/+bug/1849665/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs