diff --git a/pkg/controller/volume/persistentvolume/pv_controller.go b/pkg/controller/volume/persistentvolume/pv_controller.go index b036d02a43a..d40b879a423 100644 --- a/pkg/controller/volume/persistentvolume/pv_controller.go +++ b/pkg/controller/volume/persistentvolume/pv_controller.go @@ -1341,10 +1341,10 @@ func (ctrl *PersistentVolumeController) provisionClaimOperation(claimObj interfa // Save succeeded. glog.V(3).Infof("volume %q for claim %q saved", volume.Name, claimToClaimKey(claim)) - _, err = ctrl.storeVolumeUpdate(newVol) - if err != nil { + _, updateErr := ctrl.storeVolumeUpdate(newVol) + if updateErr != nil { // We will get an "volume added" event soon, this is not a big error - glog.V(4).Infof("provisionClaimOperation [%s]: cannot update internal cache: %v", volume.Name, err) + glog.V(4).Infof("provisionClaimOperation [%s]: cannot update internal cache: %v", volume.Name, updateErr) } break } @@ -1362,9 +1362,11 @@ func (ctrl *PersistentVolumeController) provisionClaimOperation(claimObj interfa glog.V(3).Info(strerr) ctrl.eventRecorder.Event(claim, v1.EventTypeWarning, "ProvisioningFailed", strerr) + var deleteErr error + var deleted bool for i := 0; i < ctrl.createProvisionedPVRetryCount; i++ { - deleted, err := ctrl.doDeleteVolume(volume) - if err == nil && deleted { + deleted, deleteErr = ctrl.doDeleteVolume(volume) + if deleteErr == nil && deleted { // Delete succeeded glog.V(4).Infof("provisionClaimOperation [%s]: cleaning volume %s succeeded", claimToClaimKey(claim), volume.Name) break @@ -1377,14 +1379,14 @@ func (ctrl *PersistentVolumeController) provisionClaimOperation(claimObj interfa break } // Delete failed, try again after a while. - glog.V(3).Infof("failed to delete volume %q: %v", volume.Name, err) + glog.V(3).Infof("failed to delete volume %q: %v", volume.Name, deleteErr) time.Sleep(ctrl.createProvisionedPVInterval) } - if err != nil { + if deleteErr != nil { // Delete failed several times. There is an orphaned volume and there // is nothing we can do about it. - strerr := fmt.Sprintf("Error cleaning provisioned volume for claim %s: %v. Please delete manually.", claimToClaimKey(claim), err) + strerr := fmt.Sprintf("Error cleaning provisioned volume for claim %s: %v. Please delete manually.", claimToClaimKey(claim), deleteErr) glog.V(2).Info(strerr) ctrl.eventRecorder.Event(claim, v1.EventTypeWarning, "ProvisioningCleanupFailed", strerr) }