diff --git a/pkg/volume/util/operationexecutor/operation_generator.go b/pkg/volume/util/operationexecutor/operation_generator.go index 0e64bbe4cf6..7d547402e9d 100644 --- a/pkg/volume/util/operationexecutor/operation_generator.go +++ b/pkg/volume/util/operationexecutor/operation_generator.go @@ -334,24 +334,18 @@ func (og *operationGenerator) GenerateAttachVolumeFunc( volumeToAttach.VolumeSpec, volumeToAttach.NodeName) if attachErr != nil { + uncertainNode := volumeToAttach.NodeName if derr, ok := attachErr.(*volerr.DanglingAttachError); ok { - addErr := actualStateOfWorld.MarkVolumeAsAttached( - v1.UniqueVolumeName(""), - originalSpec, - derr.CurrentNode, - derr.DevicePath) - - if addErr != nil { - klog.Errorf("AttachVolume.MarkVolumeAsAttached failed to fix dangling volume error for volume %q with %s", volumeToAttach.VolumeName, addErr) - } - - } else { - addErr := actualStateOfWorld.MarkVolumeAsUncertain( - v1.UniqueVolumeName(""), originalSpec, volumeToAttach.NodeName) - if addErr != nil { - klog.Errorf("AttachVolume.MarkVolumeAsUncertain fail to add the volume %q to actual state with %s", volumeToAttach.VolumeName, addErr) - } + uncertainNode = derr.CurrentNode } + addErr := actualStateOfWorld.MarkVolumeAsUncertain( + v1.UniqueVolumeName(""), + originalSpec, + uncertainNode) + if addErr != nil { + klog.Errorf("AttachVolume.MarkVolumeAsUncertain fail to add the volume %q to actual state with %s", volumeToAttach.VolumeName, addErr) + } + // On failure, return error. Caller will log and retry. return volumeToAttach.GenerateError("AttachVolume.Attach failed", attachErr) }