-
Notifications
You must be signed in to change notification settings - Fork 89
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
zstd fails with archives using skippable frames #271
Comments
cgwalters
added a commit
to cgwalters/ostree-rs-ext
that referenced
this issue
Apr 29, 2024
This is basically just a workaround for Nullus157/async-compression#271 However, in practice I think we may as well just use a native blocking tokio thread here. There's a lot of shenanigans going on though because we're wrapping sync I/O with async and then back to sync because the tar code we're using is still sync. What would be a lot better is to move the compression to be inline with the sync tar parsing, but that would require some API changes and more code motion.
zsrd skippable format is not supported yet, it is tracked in #266 . We are currently waiting for zstd to add it |
Closing as duplicate, thanks. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
xref ostreedev/ostree-rs-ext#616
The containers zstd:chunked format uses zstd's skippable frames.
It seems that async_compression's zstd support somehow fails with these.
zstd skippable frames don't seem very widely used, but the way I'm testing here is using e.g.
skopeo copy --dest-compress-format=zstd:chunked docker://docker.io/library/busybox oci:busybox
and you'll get a zstd:chunked tar archive inbusybox/blobs/sha256
.I wrote up this quick test program:
And the result is (using nushell syntax on a test archive I have handy):
vs
Just trying to dig into this, I don't see many references to skippable frame support in the Rust zstd bindings - not clear to me even how one accesses them with the C library. Whereas I see a clear Skippable flag in the Go implementation.
The text was updated successfully, but these errors were encountered: