Skip to content

Commit fd7b441

Browse files
Merge pull request #1528 from njhale/4.4-fix-qset
Bug 1836905: fix(queues): use a single gc queue
2 parents f8ef76c + c4ae377 commit fd7b441

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
@@ -661,8 +661,9 @@ func (a *Operator) syncObject(obj interface{}) (syncError error) {
661661
kubestate.ResourceUpdated,
662662
metaObj,
663663
)
664-
syncError = a.objGCQueueSet.RequeueEvent(ns, resourceEvent)
665-
logger.Debugf("syncObject - requeued update event for %v, res=%v", resourceEvent, syncError)
664+
if syncError = a.objGCQueueSet.RequeueEvent("", resourceEvent); syncError != nil {
665+
logger.WithError(syncError).Warnf("failed to requeue gc event: %v", resourceEvent)
666+
}
666667
return
667668
}
668669
}
@@ -855,17 +856,19 @@ func (a *Operator) handleClusterServiceVersionDeletion(obj interface{}) {
855856
logger.WithError(err).Warn("cannot list cluster role bindings")
856857
}
857858
for _, crb := range crbs {
858-
syncError := a.objGCQueueSet.RequeueEvent("", kubestate.NewResourceEvent(kubestate.ResourceUpdated, crb))
859-
logger.Debugf("handleCSVdeletion - requeued update event for %v, res=%v", crb, syncError)
859+
if err := a.objGCQueueSet.RequeueEvent("", kubestate.NewResourceEvent(kubestate.ResourceUpdated, crb)); err != nil {
860+
logger.WithError(err).Warnf("failed to requeue gc event: %v", crb)
861+
}
860862
}
861863

862864
crs, err := a.lister.RbacV1().ClusterRoleLister().List(ownerSelector)
863865
if err != nil {
864866
logger.WithError(err).Warn("cannot list cluster roles")
865867
}
866868
for _, cr := range crs {
867-
syncError := a.objGCQueueSet.RequeueEvent("", kubestate.NewResourceEvent(kubestate.ResourceUpdated, cr))
868-
logger.Debugf("handleCSVdeletion - requeued update event for %v, res=%v", cr, syncError)
869+
if err := a.objGCQueueSet.RequeueEvent("", kubestate.NewResourceEvent(kubestate.ResourceUpdated, cr)); err != nil {
870+
logger.WithError(err).Warnf("failed to requeue gc event: %v", cr)
871+
}
869872
}
870873
}
871874

pkg/lib/queueinformer/resourcequeue.go

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

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

0 commit comments

Comments
 (0)