TEST CASE:
I did test the -proposed package on a clean install of jammy (without the HWE kernel) and a test pool.
Since you need a tool that uses lseek SEEK_HOLE/SEEK_DATA and the coreutils bundled with Ubuntu 22.04 are still at version 8.x, I manually downloaded the tarball of coreutils 9.1 from https://www.gnu.org/software/coreutils/ and installed the newly compiled version of "cp" that is used by the zhammer script.
Then I used the zhammer.sh script linked in #16 to test for data corruption:
test@zfstest:~$ sudo parallel --lb --halt-on-error now,fail=1 ./zhammer.sh /test 10000000 16k 10000 ::: $(seq $(nproc))
...
As expected on an unpatched system I immediately got the error on the first run:
...
Then I enabled the -proposed repository, installed the patched zfs-version and enabled the dkms kernel module for zfs.
After a reboot I re-ran the zhammer.sh and it didn't trigger the bug any more after 5 iterations (x10.000 files).
[zhammer::4265] Uname: Linux zfstest 5.15.0-94-generic #104-Ubuntu SMP Tue Jan 9 15:25:40 UTC 2024 x86_64 GNU/Linux
[zhammer::4265] ZFS userspace: zfs-2.1.5-1ubuntu6~22.04.3
[zhammer::4265] ZFS kernel: zfs-kmod-2.1.5-1ubuntu6~22.04.3
[zhammer::4265] Module: /lib/modules/5.15.0-94-generic/updates/dkms/zfs.ko
[zhammer::4265] Srcversion: 9CA2EC22B1B594D0C432666
[zhammer::4265] SHA256: f78e84e7f995c15b715f6010ec939ca4202a73654bfafd24572d214ebfcb6364
[zhammer::4265] Work dir: /test
[zhammer::4265] Count: 10000000 files
[zhammer::4265] Block size: 16k
[zhammer::4265] Check every: 10000 files
[zhammer::4265] writing 10000 files at iteration 0
[...]
[zhammer::4253] writing 10000 files at iteration 40000
[zhammer::4248] writing 10000 files at iteration 40000
[zhammer::4246] writing 10000 files at iteration 40000
[zhammer::4256] writing 10000 files at iteration 40000
[zhammer::4252] writing 10000 files at iteration 40000
[zhammer::4280] writing 10000 files at iteration 40000
[zhammer::4271] writing 10000 files at iteration 40000
[zhammer::4265] writing 10000 files at iteration 40000
[zhammer::4246] checking 10000 files at iteration 40000
[zhammer::4253] checking 10000 files at iteration 40000
[zhammer::4265] checking 10000 files at iteration 40000
[zhammer::4248] checking 10000 files at iteration 40000
[zhammer::4252] checking 10000 files at iteration 40000
[zhammer::4280] checking 10000 files at iteration 40000
[zhammer::4256] checking 10000 files at iteration 40000
[zhammer::4271] checking 10000 files at iteration 40000
...
Therefore I can report that the proposed fix is also working for jammy.
P.S.: I am not sure if I am supposed to change the verification-tag, but since there seems to be very little other activity here and the fix for jammy is still not released I just went ahead. Hopefully this helps to get the fix released in less then (already humiliating) three months.
Verification done for jammy-proposed.
TEST CASE:
I did test the -proposed package on a clean install of jammy (without the HWE kernel) and a test pool.
Since you need a tool that uses lseek SEEK_HOLE/SEEK_DATA and the coreutils bundled with Ubuntu 22.04 are still at version 8.x, I manually downloaded the tarball of coreutils 9.1 from https:/ /www.gnu. org/software/ coreutils/ and installed the newly compiled version of "cp" that is used by the zhammer script.
test@zfstest:/test$ cp --version
cp (GNU coreutils) 9.1
Then I used the zhammer.sh script linked in #16 to test for data corruption:
test@zfstest:~$ sudo parallel --lb --halt-on-error now,fail=1 ./zhammer.sh /test 10000000 16k 10000 ::: $(seq $(nproc))
...
As expected on an unpatched system I immediately got the error on the first run:
[zhammer::765410] zhammer_765410_0 differed from zhammer_ 765410_ 5930! 765410_ 0.hex 2024-02-15 15:27:22.370732491 +0000 765410_ 5930.hex 2024-02-15 15:27:22.370732491 +0000 5-1ubuntu6~ 22.04.2 2.1.5-1ubuntu6~ 22.04.2 5.15.0- 94-generic/ kernel/ zfs/zfs. ko 696CC35F ba6b8bf92285089 9318ebd24dedd14 ab5672574c4bd81 1ffc
[zhammer::765410] Hexdump diff follows
--- zhammer_
+++ zhammer_
@@ -1,3 +1,3 @@
-00000000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
+00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00004000
[zhammer::765410] Uname: Linux zfstest 5.15.0-94-generic #104-Ubuntu SMP Tue Jan 9 15:25:40 UTC 2024 x86_64 GNU/Linux
[zhammer::765410] ZFS userspace: zfs-2.1.
[zhammer::765410] ZFS kernel: zfs-kmod-
[zhammer::765410] Module: /lib/modules/
[zhammer::765410] Srcversion: 5A94B4662A7A991
[zhammer::765410] SHA256: d83e630d4e46280
[zhammer::765391] checking 10000 files at iteration 0
parallel: This job failed: ./zhammer.sh /test 10000000 16k 10000 5
...
Then I enabled the -proposed repository, installed the patched zfs-version and enabled the dkms kernel module for zfs.
After a reboot I re-ran the zhammer.sh and it didn't trigger the bug any more after 5 iterations (x10.000 files).
[zhammer::4265] Uname: Linux zfstest 5.15.0-94-generic #104-Ubuntu SMP Tue Jan 9 15:25:40 UTC 2024 x86_64 GNU/Linux 5-1ubuntu6~ 22.04.3 2.1.5-1ubuntu6~ 22.04.3 5.15.0- 94-generic/ updates/ dkms/zfs. ko 0C432666 b715f6010ec939c a4202a73654bfaf d24572d214ebfcb 6364
[zhammer::4265] ZFS userspace: zfs-2.1.
[zhammer::4265] ZFS kernel: zfs-kmod-
[zhammer::4265] Module: /lib/modules/
[zhammer::4265] Srcversion: 9CA2EC22B1B594D
[zhammer::4265] SHA256: f78e84e7f995c15
[zhammer::4265] Work dir: /test
[zhammer::4265] Count: 10000000 files
[zhammer::4265] Block size: 16k
[zhammer::4265] Check every: 10000 files
[zhammer::4265] writing 10000 files at iteration 0
[...]
[zhammer::4253] writing 10000 files at iteration 40000
[zhammer::4248] writing 10000 files at iteration 40000
[zhammer::4246] writing 10000 files at iteration 40000
[zhammer::4256] writing 10000 files at iteration 40000
[zhammer::4252] writing 10000 files at iteration 40000
[zhammer::4280] writing 10000 files at iteration 40000
[zhammer::4271] writing 10000 files at iteration 40000
[zhammer::4265] writing 10000 files at iteration 40000
[zhammer::4246] checking 10000 files at iteration 40000
[zhammer::4253] checking 10000 files at iteration 40000
[zhammer::4265] checking 10000 files at iteration 40000
[zhammer::4248] checking 10000 files at iteration 40000
[zhammer::4252] checking 10000 files at iteration 40000
[zhammer::4280] checking 10000 files at iteration 40000
[zhammer::4256] checking 10000 files at iteration 40000
[zhammer::4271] checking 10000 files at iteration 40000
...
Therefore I can report that the proposed fix is also working for jammy.
P.S.: I am not sure if I am supposed to change the verification-tag, but since there seems to be very little other activity here and the fix for jammy is still not released I just went ahead. Hopefully this helps to get the fix released in less then (already humiliating) three months.