Address review comments

This commit is contained in:
Hemant Kumar 2022-06-29 15:02:38 -04:00
parent eb071c2755
commit b8257e8c01
3 changed files with 14 additions and 3 deletions

View File

@ -765,7 +765,7 @@ func (rc *reconciler) markVolumeState(volume *reconstructedVolume, volumeState o
OuterVolumeSpecName: volume.outerVolumeSpecName, OuterVolumeSpecName: volume.outerVolumeSpecName,
VolumeGidVolume: volume.volumeGidValue, VolumeGidVolume: volume.volumeGidValue,
VolumeSpec: volume.volumeSpec, VolumeSpec: volume.volumeSpec,
VolumeMountState: operationexecutor.VolumeMounted, VolumeMountState: volumeState,
} }
err := rc.actualStateOfWorld.MarkVolumeAsMounted(markVolumeOpts) err := rc.actualStateOfWorld.MarkVolumeAsMounted(markVolumeOpts)
return err return err

View File

@ -216,8 +216,12 @@ type ActualStateOfWorldMounterUpdater interface {
// volume expansion must not be retried for this volume // volume expansion must not be retried for this volume
MarkForInUseExpansionError(volumeName v1.UniqueVolumeName) MarkForInUseExpansionError(volumeName v1.UniqueVolumeName)
// AddVolumeViaReconstruction adds the volume to actual state of the world and also
// marks the volume as one found during reconstruction.
AddVolumeViaReconstruction(opts MarkVolumeOpts) error AddVolumeViaReconstruction(opts MarkVolumeOpts) error
// IsVolumeReconstructed returns true if volume currently added to actual state of the world
// was found during reconstruction.
IsVolumeReconstructed(volumeName v1.UniqueVolumeName, podName volumetypes.UniquePodName) bool IsVolumeReconstructed(volumeName v1.UniqueVolumeName, podName volumetypes.UniquePodName) bool
} }

View File

@ -784,13 +784,20 @@ func (og *operationGenerator) markDeviceErrorState(volumeToMount VolumeToMount,
func (og *operationGenerator) markVolumeErrorState(volumeToMount VolumeToMount, markOpts MarkVolumeOpts, mountError error, actualStateOfWorld ActualStateOfWorldMounterUpdater) { func (og *operationGenerator) markVolumeErrorState(volumeToMount VolumeToMount, markOpts MarkVolumeOpts, mountError error, actualStateOfWorld ActualStateOfWorldMounterUpdater) {
if volumetypes.IsOperationFinishedError(mountError) && if volumetypes.IsOperationFinishedError(mountError) &&
actualStateOfWorld.GetVolumeMountState(volumeToMount.VolumeName, markOpts.PodName) == VolumeMountUncertain && actualStateOfWorld.GetVolumeMountState(volumeToMount.VolumeName, markOpts.PodName) == VolumeMountUncertain {
!actualStateOfWorld.IsVolumeReconstructed(volumeToMount.VolumeName, volumeToMount.PodName) { // if volume was previously reconstructed we are not going to change its state as unmounted even
// if mount operation fails.
if actualStateOfWorld.IsVolumeReconstructed(volumeToMount.VolumeName, volumeToMount.PodName) {
klog.V(3).Infof("MountVolume.markVolumeErrorState leaving volume uncertain", "volumeName", volumeToMount.VolumeName)
return
}
t := actualStateOfWorld.MarkVolumeAsUnmounted(volumeToMount.PodName, volumeToMount.VolumeName) t := actualStateOfWorld.MarkVolumeAsUnmounted(volumeToMount.PodName, volumeToMount.VolumeName)
if t != nil { if t != nil {
klog.Errorf(volumeToMount.GenerateErrorDetailed("MountVolume.MarkVolumeAsUnmounted failed", t).Error()) klog.Errorf(volumeToMount.GenerateErrorDetailed("MountVolume.MarkVolumeAsUnmounted failed", t).Error())
} }
return return
} }
if volumetypes.IsUncertainProgressError(mountError) && if volumetypes.IsUncertainProgressError(mountError) &&