mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
Merge pull request #42721 from NickrenREN/pv-provisionClaimOperation
Automatic merge from submit-queue fix createProvisionedPV result err judgenment bug When ctrl.kubeClient.Core().PersistentVolumes().Create(volume) returns no err, and storeVolumeUpdate() fails, we save PV sucessfully ,but here err is not nil,we should not run the codes next in block if err != nil {} to delete the storage asset. same in the deletion retries below change the err names to make it clear **Release note**: ```release-note NONE ``` @jsafrane @saad-ali PTAL. Thanks
This commit is contained in:
commit
81d9e7f68a
@ -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)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user