zfs diff: Unable to determine path or stats for object
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
zfs-linux (Ubuntu) |
Fix Released
|
High
|
Colin Ian King | ||
Eoan |
Fix Released
|
Undecided
|
Unassigned |
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-
+ /nsnx/trusty-2a/bin
Unable to determine path or stats for object 5 in nsnx/trusty-
== Fix ==
Upstream commit d359e99c38f667 ("diff_cb() does not handle large dnodes") as addressed in ZFS bug fix: https:/
== 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=
Enter passphrase:
Re-enter passphrase:
# dd if=/dev/urandom bs=4k of=/tank/
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/
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/
M /tank/d1/
== Regression Potential ==
This is a minor change in module/
-------
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-
+ /nsnx/trusty-2a/bin
Unable to determine path or stats for object 5 in nsnx/trusty-
I believe this to be upstream bug https:/
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=
Enter passphrase:
Re-enter passphrase:
# dd if=/dev/urandom bs=4k of=/tank/
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/
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.
description: | updated |
Changed in zfs-linux (Ubuntu): | |
importance: | Undecided → High |
assignee: | nobody → Colin Ian King (colin-king) |
status: | New → In Progress |
description: | updated |
Confirming that upstream commit https:/ /github. com/zfsonlinux/ zfs/commit/ d359e99c38f6673 2d42278c32d52cf cf1839aa4f fixes this issue.