Problem
The image preparation step is still not retried. prepare_for_pull() fetches the manifest through OpenImage, which can fail transiently because of DNS, TCP, or registry errors.
For example:
failed to invoke method OpenImage: fetching manifest:
dial tcp ...:443: connect: connection refused
containers-image-proxy-rs currently reports this as an opaque RequestInitiationFailure. bootc cannot safely distinguish transient network failures from permanent failures such as:
- missing images or manifests
- invalid image references
- signature-policy rejection
Retrying every RequestInitiationFailure would unnecessarily delay permanent errors.
Desired behavior
bootc should apply its bounded registry retry policy to transient failures during image preparation as well as blob downloads, while returning permanent failures immediately.
This likely requires typed retryability information from containers-image-proxy-rs instead of parsing error strings.
Problem
The image preparation step is still not retried.
prepare_for_pull()fetches the manifest throughOpenImage, which can fail transiently because of DNS, TCP, or registry errors.For example:
containers-image-proxy-rscurrently reports this as an opaqueRequestInitiationFailure. bootc cannot safely distinguish transient network failures from permanent failures such as:Retrying every
RequestInitiationFailurewould unnecessarily delay permanent errors.Desired behavior
bootc should apply its bounded registry retry policy to transient failures during image preparation as well as blob downloads, while returning permanent failures immediately.
This likely requires typed retryability information from
containers-image-proxy-rsinstead of parsing error strings.