-
Notifications
You must be signed in to change notification settings - Fork 243
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
storage: enable partial images by default #1833
storage: enable partial images by default #1833
Conversation
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: giuseppe The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code LGTM; but doing this is ~blocked on #1826 and c/image using that API, otherwise power loss can lead to broken stores.
As discussed in chat, having the check for enable_partial_images
at the very first entry point (chunked.GetDiffer
) would isolate more of the risk.
FWIW tests are failing |
d939c0a
to
2e77424
Compare
fixed now |
2e77424
to
b9dbb79
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code LGTM again… still #1826.
docs/containers-storage.conf.5.md
Outdated
@@ -96,7 +96,7 @@ storage of content and can allow the kernel to use less memory when running | |||
containers. | |||
|
|||
containers/storage supports three keys | |||
* enable_partial_images="true" | "false" | |||
* enable_partial_images="true" | "true" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks wrong options is true or falsenot true or true.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
by default enable pulling a partial image, it is still possible to disable the feature through the configuration file. Signed-off-by: Giuseppe Scrivano <[email protected]>
move the check for `enable_partial_images` to GetDiffer so that it doesn't attempt any operation if the feature is disabled. Signed-off-by: Giuseppe Scrivano <[email protected]>
b9dbb79
to
8c1cf34
Compare
unblocked now |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
Likely fallout in containers/bootc#509 (comment) |
@cgwalters almost 2 months later … is the cause clear? I see “corrupted blob, expecting …” from Skopeo proxy in that ticket, reporting that some kind of But the total sequence of operations is not trivially clear from that report, and I’m naively thinking that if we broke |
Thanks for following up. Still to this day, we haven't really dug into zstd:chunked images and ostree because containers/bootc#20 means it's basically not useful to create them right now - in theory it should be pullable (and most of the time was), but without the actual delta effect.
Right but remember "podman pull" is exercising the combination of c/image and c/storage which are wired together for zstd:chunked. What ostree is doing is more like |
I guess we could try stress testing this path with just raw code talking to the proxy and calling GetBlob (https://github.com/containers/containers-image-proxy-rs/blob/main/examples/client.rs is a trivial client that doesn't involve anything ostree, etc.) |
Hum… |
by default enable pulling a partial image, it is still possible to disable the feature through the configuration file.
@rhatdan @mtrmac