@@ -260,11 +260,27 @@ func (ctrl *csiSnapshotSideCarController) syncContentByKey(key string) (requeue
260260 // been add/update/sync
261261 if err == nil {
262262 if ctrl .isDriverMatch (content ) {
263- requeue , err = ctrl .updateContentInInformerCache (content )
264- }
265- if err != nil {
266- // If error occurs we add this item back to the queue
267- return true , err
263+ // Store the new content version in the cache and do not process it if this is
264+ // an old version.
265+ new , err := ctrl .storeContentUpdate (content )
266+ if err != nil {
267+ klog .Errorf ("%v" , err )
268+ }
269+ if ! new {
270+ return false , nil
271+ }
272+ requeue , err = ctrl .syncContent (content )
273+ if err != nil {
274+ if errors .IsConflict (err ) {
275+ // Version conflict error happens quite often and the controller
276+ // recovers from it easily.
277+ klog .V (3 ).Infof ("could not sync content %q: %+v" , content .Name , err )
278+ } else {
279+ klog .Errorf ("could not sync content %q: %+v" , content .Name , err )
280+ }
281+ // If error occurs we add this item back to the queue
282+ return true , err
283+ }
268284 }
269285 return requeue , nil
270286 }
@@ -339,32 +355,6 @@ func (ctrl *csiSnapshotSideCarController) isDriverMatch(object interface{}) bool
339355 return false
340356}
341357
342- // updateContentInInformerCache runs in worker thread and handles "content added",
343- // "content updated" and "periodic sync" events.
344- func (ctrl * csiSnapshotSideCarController ) updateContentInInformerCache (content * crdv1.VolumeSnapshotContent ) (requeue bool , err error ) {
345- // Store the new content version in the cache and do not process it if this is
346- // an old version.
347- new , err := ctrl .storeContentUpdate (content )
348- if err != nil {
349- klog .Errorf ("%v" , err )
350- }
351- if ! new {
352- return false , nil
353- }
354- requeue , err = ctrl .syncContent (content )
355- if err != nil {
356- if errors .IsConflict (err ) {
357- // Version conflict error happens quite often and the controller
358- // recovers from it easily.
359- klog .V (3 ).Infof ("could not sync content %q: %+v" , content .Name , err )
360- } else {
361- klog .Errorf ("could not sync content %q: %+v" , content .Name , err )
362- }
363- return requeue , err
364- }
365- return requeue , nil
366- }
367-
368358// deleteContent runs in worker thread and handles "content deleted" event.
369359func (ctrl * csiSnapshotSideCarController ) deleteContentInCacheStore (content * crdv1.VolumeSnapshotContent ) {
370360 _ = ctrl .contentStore .Delete (content )
0 commit comments