From 910816a532ad993fca5163a0ddf8981624c5521a Mon Sep 17 00:00:00 2001 From: Michael Yang Date: Thu, 26 Oct 2023 11:34:02 -0700 Subject: [PATCH] fix(download): no retry when out of space --- server/download.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/server/download.go b/server/download.go index acfa8e52..fa559f0c 100644 --- a/server/download.go +++ b/server/download.go @@ -15,6 +15,7 @@ import ( "strings" "sync" "sync/atomic" + "syscall" "time" "golang.org/x/sync/errgroup" @@ -158,7 +159,8 @@ func (b *blobDownload) run(ctx context.Context, requestURL *url.URL, opts *Regis w := io.NewOffsetWriter(file, part.StartsAt()) err := b.downloadChunk(inner, requestURL, w, part, opts) switch { - case errors.Is(err, context.Canceled): + case errors.Is(err, context.Canceled), errors.Is(err, syscall.ENOSPC): + // return immediately if the context is canceled or the device is out of space return err case err != nil: log.Printf("%s part %d attempt %d failed: %v, retrying", b.Digest[7:19], i, try, err)