Stop retrying pull on UnkownBlob error
Signed-off-by: Darren Stahl <darst@microsoft.com> Upstream-commit: dee2968560dba92061ec1acbec7effe94472823f Component: engine
This commit is contained in:
@@ -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}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user