moby/distribution
Cory Snider c322779dce distribution/xfer: make off-by-one error a feature
maxDownloadAttempts maps to the daemon configuration flag

    --max-download-attempts int
      Set the max download attempts for each pull (default 5)

and the daemon configuration machinery interprets a value of 0 as "apply
the default value" and not a valid user value (config validation/
normalization bugs notwithstanding). The intention is clearly that this
configuration value should be an upper limit on the number of times the
daemon should try to download a particular layer before giving up. So it
is surprising to have the configuration value interpreted as a _retry_
limit. The daemon will make up to N+1 attempts to download a layer! This
also means users cannot disable retries even if they wanted to.

As this is a longstanding bug, not a recent regression, it would not be
appropriate to backport the fix (97921915a8)
in a patch release. Update the test to assert on the buggy behaviour so
it passes again.

Signed-off-by: Cory Snider <csnider@mirantis.com>
(cherry picked from commit 938ed9a1ed)
Signed-off-by: Cory Snider <csnider@mirantis.com>
2023-10-20 19:01:17 -04:00
..
fixtures/validate_manifest Add distribution package 2015-11-24 09:40:24 -08:00
metadata refactor: move from io/ioutil to io and os package 2023-02-24 16:11:55 -05:00
utils Add canonical import comment 2018-02-05 16:51:57 -05:00
xfer distribution/xfer: make off-by-one error a feature 2023-10-20 19:01:17 -04:00
config.go Store image manifests in containerd content store 2020-11-05 20:02:18 +00:00
errors.go distribution: Error when pulling OCI artifacts 2022-11-05 18:20:18 +01:00
errors_test.go goimports: fix imports 2019-09-18 12:56:54 +02:00
manifest.go refactor: move from io/ioutil to io and os package 2023-02-24 16:11:55 -05:00
manifest_test.go refactor: move from io/ioutil to io and os package 2023-02-24 16:11:55 -05:00
pull.go Store image manifests in containerd content store 2020-11-05 20:02:18 +00:00
pull_v2.go refactor: move from io/ioutil to io and os package 2023-02-24 16:11:55 -05:00
pull_v2_test.go fix some minor linting issues 2023-02-24 17:05:41 -05:00
pull_v2_unix.go Update to Go 1.17.0, and gofmt with Go 1.17 2022-04-07 23:27:50 +02:00
pull_v2_windows.go Use hcsshim osversion package for Windows versions 2019-10-22 02:53:00 +02:00
push.go Remove v1 manifest code 2019-06-18 01:40:25 +00:00
push_v2.go gosec: G601: Implicit memory aliasing in for loop 2022-08-17 18:10:55 +02:00
push_v2_test.go distribution: SA4021: x = append(y) is equivalent to x = y (staticcheck) 2019-10-18 00:45:31 +02:00
registry.go distribution: checkSupportedMediaType: allow additional media-types 2022-12-02 01:31:15 +01:00
registry_unit_test.go Store image manifests in containerd content store 2020-11-05 20:02:18 +00:00