-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
systemd test-copy test fails for lseek(SEEK_HOLE/SEEK_DATA) – punched holes not reported as such #13261
Comments
#12724 says hello, I suspect. |
And #12746 which has been applied to the master branch, but not the 2.1 release branch. |
Heh, setting
because it fails on the next assertion:
Which is expected with compress=zstd; setting compress=off makes the test work. Doing |
Right, that's the expected behavior when compression is enabled. |
Posted systemd fix in systemd/systemd#22902, and default configuration was fixed to what it expects (do we want to pull it into 2.1.5?), so closing. |
We held off pulling it in to 2.1 release right away until we better understood any real world performance impact. It's now been in master for almost 4 months and we haven't heard and complaints, so I think it'd be reasonable to pull #12746 in for 2.1.5. |
Strict hole reporting was previously disabled by default as a performance optimization. However, this has lead to confusion over the expected behavior and a variety of workarounds being adopted by consumers of ZFS. Change the default behavior to always report holes and force the TXG sync. Reviewed-by: Matthew Ahrens <[email protected]> Reviewed-by: Tony Hutter <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Upstream-commit: 05b3eb6 Ref: openzfs#13261 Closes openzfs#12746
Strict hole reporting was previously disabled by default as a performance optimization. However, this has lead to confusion over the expected behavior and a variety of workarounds being adopted by consumers of ZFS. Change the default behavior to always report holes and force the TXG sync. Reviewed-by: Matthew Ahrens <[email protected]> Reviewed-by: Tony Hutter <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Upstream-commit: 05b3eb6 Ref: #13261 Closes #12746
System information
Describe the problem you're observing
Describe how to reproduce the problem
Clone https://github.com/systemd/systemd (I'm at 6b72105a780c0b88c81f979ce6d5651c5dee9b86) but that shouldn't matter,
meson build
,ninja -C build test
.Include any warning/errors/backtraces from the system logs
The test in question is
Which creates a file consisting of [128k hole (sought)] + [128k data] + [128k hole (truncated)].
The copied data is correct, I've verified that manually, but the lseek(SEEK_DATA/SEEK_HOLE) always return no holes. Consider the strace for ext4:
with the one for ZFS:
I don't think this is a big deal, or a deal at all (since, well, in the default configuration with compress=lz4 the whole file becomes a hole), but I'm posting this before I comment it out.
The text was updated successfully, but these errors were encountered: