Conversation
cgwalters
requested changes
Sep 8, 2026
6 tasks
HarshwardhanPatil07
force-pushed
the
fix/ostree-registry-pull-retries
branch
2 times, most recently
from
September 15, 2026 11:36
1485745 to
a2a0ced
Compare
Direct image pulls can fail when a registry transiently rejects the GetBlob request. Retry that narrowly classified failure at the whole-pull boundary with a bounded attempt count, while allowing non-registry and unrelated failures to return immediately. Related: bootc-dev#2177 Assisted-by: AI Signed-off-by: HarshwardhanPatil07 <harshpat@redhat.com>
HarshwardhanPatil07
force-pushed
the
fix/ostree-registry-pull-retries
branch
from
September 15, 2026 12:11
a2a0ced to
7bd3c43
Compare
Member
Author
cgwalters
reviewed
Sep 15, 2026
The non-unified installation path prepared and pulled images directly, bypassing the shared retry boundary and leaving bootc install to-filesystem exposed to transient registry failures. Route that path through the retrying pull while preserving unified-storage behavior. Related: bootc-dev#2177 Assisted-by: AI Signed-off-by: HarshwardhanPatil07 <harshpat@redhat.com>
HarshwardhanPatil07
force-pushed
the
fix/ostree-registry-pull-retries
branch
2 times, most recently
from
September 16, 2026 11:43
496fb9a to
09be175
Compare
cgwalters
previously approved these changes
Sep 16, 2026
Share the pull progress renderer across attempts and print retry notices through indicatif so tracing output cannot interfere with active progress bars. Assisted-by: AI Signed-off-by: HarshwardhanPatil07 <harshpat@redhat.com>
HarshwardhanPatil07
force-pushed
the
fix/ostree-registry-pull-retries
branch
from
September 18, 2026 07:22
09be175 to
d45936d
Compare
Member
Author
Johan-Liebert1
approved these changes
Sep 21, 2026
| use super::*; | ||
|
|
||
| #[test] | ||
| fn test_join_fetch_preserves_typed_driver_error() { |
Member
There was a problem hiding this comment.
Not quite sure what we're trying to test here
Collaborator
There was a problem hiding this comment.
I think it's that we can traverse the error chain?
cgwalters
approved these changes
Sep 22, 2026
| retry_delay.as_secs() | ||
| ); | ||
| progress | ||
| .send(Event::ProgressSteps { |
Collaborator
There was a problem hiding this comment.
Hmm, I am not totally sure this matches the current concept of the progress steps which I think assumes a fixed number of steps?
Of course...the API is currently experimental anyways, but we may need to ensure it supports dynamism
| use super::*; | ||
|
|
||
| #[test] | ||
| fn test_join_fetch_preserves_typed_driver_error() { |
Collaborator
There was a problem hiding this comment.
I think it's that we can traverse the error chain?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Add bounded retries for registry-backed OSTree image pulls when the containers-image proxy reports a
GetBlobrequest-initiation failure.This also routes the normal, non-unified OSTree installation path through the shared retrying pull function.
Related: #2177
Why
CI has intermittently failed during commands such as
bootc install to-filesystemwhen registries like Quay return transient errors, including502 Bad Gatewayand network timeouts.The existing CI retry wrapper covers preparatory Podman operations, but it does not cover image pulls performed internally by bootc. Consequently, one temporary registry failure can fail the entire integration job.
Retries are appropriate here because registry availability is outside bootc's control and repeating an image pull is safe.
The proxy error does not expose the underlying HTTP status. Therefore, bootc cannot distinguish a transient
502from every permanentGetBlobinitiation failure. The retry count bounds the worst-case additional delay to 60 seconds.