Fix for #17168 misleading pull error
This fix avoids overwritting the previous error messages, ensures the client gets the correct error messages and not just the most recent message during the pull request. For this `var lastErr` replaced with a slice which acts as a temp place holder for the list of returned error messages for every attempt. The slice is later joined and returned to the caller function after searching for the image with diffirent versions(v2,v1,v0). Updated the code with check for no space left on device error occurance and prevent the daemon on falling back to v1,v0. Incorporated the comments from @calavera, @RichardScothern, @cpuguy83 Signed-off-by: Anil Belur <askb23@gmail.com>
This commit is contained in:
parent
9516a01c56
commit
1820704288
1 changed files with 5 additions and 0 deletions
|
@ -13,6 +13,7 @@ import (
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"runtime"
|
"runtime"
|
||||||
"strings"
|
"strings"
|
||||||
|
"syscall"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/Sirupsen/logrus"
|
"github.com/Sirupsen/logrus"
|
||||||
|
@ -219,6 +220,10 @@ func ContinueOnError(err error) bool {
|
||||||
return shouldV2Fallback(v)
|
return shouldV2Fallback(v)
|
||||||
case *client.UnexpectedHTTPResponseError:
|
case *client.UnexpectedHTTPResponseError:
|
||||||
return true
|
return true
|
||||||
|
case error:
|
||||||
|
if val := strings.Contains(err.Error(), strings.ToLower(syscall.ENOSPC.Error())); val {
|
||||||
|
return false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// let's be nice and fallback if the error is a completely
|
// let's be nice and fallback if the error is a completely
|
||||||
// unexpected one.
|
// unexpected one.
|
||||||
|
|
Loading…
Reference in a new issue