Move defer lock release to before error check so the lock is guaranteed to be released.

pull/11223/head
Andriy Dzikh 2021-05-07 11:16:09 -07:00
parent a7cbc76d88
commit ad356d5508
3 changed files with 4 additions and 4 deletions

View File

@ -54,10 +54,10 @@ func Binary(binary, version, osName, archName string) (string, error) {
}
releaser, err := lockDownload(targetLock)
defer releaser.Release()
if err != nil {
return "", err
}
defer releaser.Release()
if _, err := checkCache(targetFilepath); err == nil {
klog.Infof("Not caching binary, using %s", url)

View File

@ -86,10 +86,10 @@ func ImageToCache(img string) error {
fileLock := f + ".lock"
releaser, err := lockDownload(fileLock)
defer releaser.Release()
if err != nil {
return err
}
defer releaser.Release()
if checkImageExistsInCache(img) {
klog.Infof("%s exists in cache, skipping pull", img)
@ -167,10 +167,10 @@ func ImageToDaemon(img string) error {
fileLock = localpath.SanitizeCacheDir(fileLock)
releaser, err := lockDownload(fileLock)
defer releaser.Release()
if err != nil {
return err
}
defer releaser.Release()
if checkImageExistsInDaemon(img) {
klog.Infof("%s exists in daemon, skipping pull", img)

View File

@ -132,10 +132,10 @@ func Preload(k8sVersion, containerRuntime string) error {
targetLock := targetPath + ".lock"
releaser, err := lockDownload(targetLock)
defer releaser.Release()
if err != nil {
return err
}
defer releaser.Release()
if _, err := checkCache(targetPath); err == nil {
klog.Infof("Found %s in cache, skipping download", targetPath)