Skip to content

Commit 65cc339

Browse files
Merge pull request #1553 from openshift-cherrypick-robot/cherry-pick-1528-to-release-4.3
Bug 1840939: fix(queues): use a single gc queue
2 parents 3740fa3 + 375454f commit 65cc339

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

pkg/controller/operators/olm/operator.go

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -658,8 +658,9 @@ func (a *Operator) syncObject(obj interface{}) (syncError error) {
658658
kubestate.ResourceUpdated,
659659
metaObj,
660660
)
661-
syncError = a.objGCQueueSet.RequeueEvent(ns, resourceEvent)
662-
logger.Debugf("syncObject - requeued update event for %v, res=%v", resourceEvent, syncError)
661+
if syncError = a.objGCQueueSet.RequeueEvent("", resourceEvent); syncError != nil {
662+
logger.WithError(syncError).Warnf("failed to requeue gc event: %v", resourceEvent)
663+
}
663664
return
664665
}
665666
}
@@ -852,17 +853,19 @@ func (a *Operator) handleClusterServiceVersionDeletion(obj interface{}) {
852853
logger.WithError(err).Warn("cannot list cluster role bindings")
853854
}
854855
for _, crb := range crbs {
855-
syncError := a.objGCQueueSet.RequeueEvent("", kubestate.NewResourceEvent(kubestate.ResourceUpdated, crb))
856-
logger.Debugf("handleCSVdeletion - requeued update event for %v, res=%v", crb, syncError)
856+
if err := a.objGCQueueSet.RequeueEvent("", kubestate.NewResourceEvent(kubestate.ResourceUpdated, crb)); err != nil {
857+
logger.WithError(err).Warnf("failed to requeue gc event: %v", crb)
858+
}
857859
}
858860

859861
crs, err := a.lister.RbacV1().ClusterRoleLister().List(ownerSelector)
860862
if err != nil {
861863
logger.WithError(err).Warn("cannot list cluster roles")
862864
}
863865
for _, cr := range crs {
864-
syncError := a.objGCQueueSet.RequeueEvent("", kubestate.NewResourceEvent(kubestate.ResourceUpdated, cr))
865-
logger.Debugf("handleCSVdeletion - requeued update event for %v, res=%v", cr, syncError)
866+
if err := a.objGCQueueSet.RequeueEvent("", kubestate.NewResourceEvent(kubestate.ResourceUpdated, cr)); err != nil {
867+
logger.WithError(err).Warnf("failed to requeue gc event: %v", cr)
868+
}
866869
}
867870
}
868871

pkg/lib/queueinformer/resourcequeue.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,11 @@ func (r *ResourceQueueSet) RequeueEvent(namespace string, resourceEvent kubestat
3838
r.mutex.RLock()
3939
defer r.mutex.RUnlock()
4040

41+
if queue, ok := r.queueSet[metav1.NamespaceAll]; len(r.queueSet) == 1 && ok {
42+
queue.AddRateLimited(resourceEvent)
43+
return nil
44+
}
45+
4146
if queue, ok := r.queueSet[namespace]; ok {
4247
queue.AddRateLimited(resourceEvent)
4348
return nil

0 commit comments

Comments
 (0)