-
Notifications
You must be signed in to change notification settings - Fork 404
Open
Labels
lifecycle/rottenDenotes an issue or PR that has aged beyond stale and will be auto-closed.Denotes an issue or PR that has aged beyond stale and will be auto-closed.
Description
What happened:
The common snapshot controller will not requeue if intermittent errors prevent the removal of the PVC finalizer, such as
E1109 05:15:43.755196 1 snapshot_controller.go:191] error check and remove PVC finalizer for snapshot [datasource-test-63c30e708034]: snapshot controller failed to update datasource-test-63c30e708034 on API server: Operation cannot be fulfilled on persistentvolumeclaims "datasource-test-63c30e708034": the object has been modified; please apply your changes to the latest version and try again
The relevant code bit
external-snapshotter/pkg/common-controller/snapshot_controller.go
Lines 189 to 194 in facefba
| // Check if we should remove finalizer on PVC and remove it if we can. | |
| if err := ctrl.checkandRemovePVCFinalizer(snapshot, false); err != nil { | |
| klog.Errorf("error check and remove PVC finalizer for snapshot [%s]: %v", snapshot.Name, err) | |
| // Log an event and keep the original error from checkandRemovePVCFinalizer | |
| ctrl.eventRecorder.Event(snapshot, v1.EventTypeWarning, "ErrorPVCFinalizer", "Error check and remove PVC Finalizer for VolumeSnapshot") | |
| } |
What you expected to happen:
Finalizer removed
How to reproduce it:
Unit test is sufficient - inject an error to PVC Update() and observe that the controller doesn't return err/requeue
Anything else we need to know?:
Environment:
main branch of external-snapshotter
Metadata
Metadata
Assignees
Labels
lifecycle/rottenDenotes an issue or PR that has aged beyond stale and will be auto-closed.Denotes an issue or PR that has aged beyond stale and will be auto-closed.