From 19f7b0fe8d1d295ebfc863e8ef5ad91cf1ab9adf Mon Sep 17 00:00:00 2001 From: Lorenzo Bolla Date: Tue, 4 May 2021 20:41:28 +0200 Subject: [PATCH] mirror: increase logging for easier debugging --- api/db.go | 4 ++-- http/download.go | 28 +++++++++++++++++++++++----- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/api/db.go b/api/db.go index 4ad45b14..4fc6efb3 100644 --- a/api/db.go +++ b/api/db.go @@ -99,13 +99,13 @@ func apiDbCleanup(c *gin.Context) { db, _ := context.Database() if toDelete.Len() > 0 { - batch := db.StartBatch() + batch := db.CreateBatch() toDelete.ForEach(func(ref []byte) error { collectionFactory.PackageCollection().DeleteByKey(ref, batch) return nil }) - err = db.FinishBatch(batch) + err = batch.Write() if err != nil { return fmt.Errorf("unable to write to DB: %s", err) } diff --git a/http/download.go b/http/download.go index 9c5c294a..6ac38343 100644 --- a/http/download.go +++ b/http/download.go @@ -146,8 +146,8 @@ func retryableError(err error) bool { case net.Error: return true } - - return false + // Note: make all errors retryable + return true } func (downloader *downloaderImpl) newRequest(ctx context.Context, method, url string) (*http.Request, error) { @@ -182,17 +182,35 @@ func (downloader *downloaderImpl) DownloadWithChecksum(ctx context.Context, url for maxTries > 0 { temppath, err = downloader.download(req, url, destination, expected, ignoreMismatch) - if err != nil && retryableError(err) { - maxTries-- + if err != nil { + if retryableError(err) { + if downloader.progress != nil { + downloader.progress.Printf("Error downloading %s: %s retrying...\n", url, err) + } + maxTries-- + } else { + if downloader.progress != nil { + downloader.progress.Printf("Error downloading %s: %s cannot retry...\n", url, err) + } + break + } } else { // get out of the loop + if downloader.progress != nil { + downloader.progress.Printf("Success downloading %s\n", url) + } break } - downloader.progress.Printf("Retrying %s...\n", url) + if downloader.progress != nil { + downloader.progress.Printf("Retrying %d %s...\n", maxTries, url) + } } // still an error after retrying, giving up if err != nil { + if downloader.progress != nil { + downloader.progress.Printf("Giving up on %s...\n", url) + } return err }