mirror of
https://github.com/aptly-dev/aptly.git
synced 2026-06-07 05:42:42 +00:00
Cap delay to sleep to avoid overflow
This commit is contained in:
+6
-3
@@ -179,9 +179,9 @@ func (downloader *downloaderImpl) DownloadWithChecksum(ctx context.Context, url
|
|||||||
|
|
||||||
var temppath string
|
var temppath string
|
||||||
maxTries := downloader.maxTries
|
maxTries := downloader.maxTries
|
||||||
const delayBase = 1
|
const delayMax = time.Duration(5 * time.Minute)
|
||||||
|
delay := time.Duration(1 * time.Second)
|
||||||
const delayMultiplier = 2
|
const delayMultiplier = 2
|
||||||
delay := time.Duration(delayBase * time.Second)
|
|
||||||
for maxTries > 0 {
|
for maxTries > 0 {
|
||||||
temppath, err = downloader.download(req, url, destination, expected, ignoreMismatch)
|
temppath, err = downloader.download(req, url, destination, expected, ignoreMismatch)
|
||||||
|
|
||||||
@@ -192,8 +192,11 @@ func (downloader *downloaderImpl) DownloadWithChecksum(ctx context.Context, url
|
|||||||
}
|
}
|
||||||
maxTries--
|
maxTries--
|
||||||
time.Sleep(delay)
|
time.Sleep(delay)
|
||||||
// Sleep exponentially at the next retry
|
// Sleep exponentially at the next retry, but no longer than delayMax
|
||||||
delay *= delayMultiplier
|
delay *= delayMultiplier
|
||||||
|
if delay > delayMax {
|
||||||
|
delay = delayMax
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if downloader.progress != nil {
|
if downloader.progress != nil {
|
||||||
downloader.progress.Printf("Error downloading %s: %s cannot retry...\n", url, err)
|
downloader.progress.Printf("Error downloading %s: %s cannot retry...\n", url, err)
|
||||||
|
|||||||
Reference in New Issue
Block a user