diff --git a/distribution/errors.go b/distribution/errors.go index ed8c3c0534..7f9e20f279 100644 --- a/distribution/errors.go +++ b/distribution/errors.go @@ -6,6 +6,7 @@ import ( "syscall" "github.com/Sirupsen/logrus" + "github.com/docker/distribution" "github.com/docker/distribution/registry/api/errcode" "github.com/docker/distribution/registry/api/v2" "github.com/docker/distribution/registry/client" @@ -139,6 +140,9 @@ func retryOnError(err error) error { case *client.UnexpectedHTTPResponseError: return xfer.DoNotRetry{Err: err} case error: + if err == distribution.ErrBlobUnknown { + return xfer.DoNotRetry{Err: err} + } if strings.Contains(err.Error(), strings.ToLower(syscall.ENOSPC.Error())) { return xfer.DoNotRetry{Err: err} } diff --git a/distribution/pull_v2.go b/distribution/pull_v2.go index d62200ddaa..5bfb328a18 100644 --- a/distribution/pull_v2.go +++ b/distribution/pull_v2.go @@ -189,9 +189,6 @@ func (ld *v2LayerDescriptor) Download(ctx context.Context, progressOutput progre layerDownload, err := ld.open(ctx) if err != nil { logrus.Errorf("Error initiating layer download: %v", err) - if err == distribution.ErrBlobUnknown { - return nil, 0, xfer.DoNotRetry{Err: err} - } return nil, 0, retryOnError(err) }