Skip to content

Fix: use retry.RetryOnConflict to prevent retry storm on composition status updates#574

Open
hunter32292 wants to merge 2 commits intomainfrom
jostupka/eno-retrystorm
Open

Fix: use retry.RetryOnConflict to prevent retry storm on composition status updates#574
hunter32292 wants to merge 2 commits intomainfrom
jostupka/eno-retrystorm

Conversation

@hunter32292
Copy link
Collaborator

When multiple controllers concurrently update composition status, conflict
errors cause immediate requeues without backoff, leading to a retry storm
that can overwhelm the API server (142+ retries/second observed).

This fix uses k8s.io/client-go/util/retry.RetryOnConflict which:

  • Re-fetches the composition before each retry attempt
  • Applies exponential backoff between retries
  • Handles conflicts internally instead of propagating errors

This prevents the thundering herd effect where conflict errors cascade
through the controller-runtime work queue.

hunter32292 and others added 2 commits March 3, 2026 13:07
…status updates

When multiple controllers concurrently update composition status, conflict
errors cause immediate requeues without backoff, leading to a retry storm
that can overwhelm the API server (142+ retries/second observed).

This fix uses k8s.io/client-go/util/retry.RetryOnConflict which:
- Re-fetches the composition before each retry attempt
- Applies exponential backoff between retries
- Handles conflicts internally instead of propagating errors

This prevents the thundering herd effect where conflict errors cascade
through the controller-runtime work queue.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant