Skip to content

Commit bd7e387

Browse files
committed
Dont skip elements due to reordering when delete items from rate limiter
1 parent 61eb329 commit bd7e387

1 file changed

Lines changed: 8 additions & 2 deletions

File tree

pkg/rate-limiter/rate_limiter.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,16 @@ func (r *RateLimiter) checkAndUpdateItems(ctx context.Context) {
6464

6565
r.notReadyItems = 0
6666

67+
itemsToDelete := []types.NamespacedName{}
68+
6769
for nsName, inTime := range r.items {
6870
// give the operators/controllers 10 seconds to update item status
6971
if time.Since(inTime) < r.durationToBecomeReady {
7072
continue
7173
}
7274

7375
if time.Since(inTime) > r.itemTimeout {
74-
delete(r.items, nsName)
76+
itemsToDelete = append(itemsToDelete, nsName)
7577

7678
r.log.V(0).Info("timeout exceeded", "item", nsName)
7779

@@ -80,13 +82,17 @@ func (r *RateLimiter) checkAndUpdateItems(ctx context.Context) {
8082

8183
// check item. If it is ready, remove it from buffer
8284
if r.itemIsReady(ctx, r.c, nsName, r.log) {
83-
delete(r.items, nsName)
85+
itemsToDelete = append(itemsToDelete, nsName)
8486

8587
continue
8688
}
8789

8890
r.notReadyItems++
8991
}
92+
93+
for _, nsName := range itemsToDelete {
94+
delete(r.items, nsName)
95+
}
9096
}
9197

9298
func (r *RateLimiter) writeLog() {

0 commit comments

Comments
 (0)