Skip to content

Apply jitter to not-reconciling resync requeue - #937

Open
mandre wants to merge 1 commit into
mainfrom
fix-resync-jitter
Open

mandre wants to merge 1 commit into
mainfrom
fix-resync-jitter

Conversation

@mandre

@mandre mandre commented Sep 25, 2026

Copy link
Copy Markdown
Collaborator

The ShouldReconcile=false path in reconcileNormal scheduled unjittered requeues via RemainingUntilNextSync. After a successful resync, the SSA status patch (updating lastSyncTime) triggers a watch event that re-enqueues the object immediately. The watch-triggered reconcile runs ShouldReconcile=false and replaces the pending jittered requeue with an unjittered one, causing all resources sharing the same resyncPeriod to converge on identical timing.

Wrap the remaining duration with CalculateJitteredDuration so that watch-triggered reconciliations preserve jitter and resources maintain independent schedules.

Fixes #936

The ShouldReconcile=false path in reconcileNormal scheduled
unjittered requeues via RemainingUntilNextSync. After a
successful resync, the SSA status patch (updating lastSyncTime)
triggers a watch event that re-enqueues the object immediately.
The watch-triggered reconcile runs ShouldReconcile=false and
replaces the pending jittered requeue with an unjittered one,
causing all resources sharing the same resyncPeriod to converge
on identical timing.

Wrap the remaining duration with CalculateJitteredDuration so
that watch-triggered reconciliations preserve jitter and
resources maintain independent schedules.

Fixes #936
@github-actions github-actions Bot added the semver:patch No API change label Sep 25, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

semver:patch No API change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Resync jitter is defeated by watch-triggered reconciliations

1 participant