KB-9 Suspected, not reproduced
In manual sync mode, writes other than /sync can start an apply
Behavior#
In manual sync mode, convoy applies when the annotation convoy.kumodo.io/sync-requested-at is
later than status.lastHandledSyncAt. These writes also set that annotation:
- writes to
/pin,/mutationsand/lifecycle - the
/syncrequests of the observer, when a sync wave completes, when the assessment reaches a new render, or when a batch of hooks completes
Effect#
In manual sync mode, a change to the mutations, the lifecycle hooks or the pin applies the
current render at once. An observer request can apply a render that changed after the last
user /sync.
Workaround#
None known.
Fix direction#
Keep a separate annotation for user /sync requests, and use only that one for the manual-mode
apply decision.
In the code
convoy v0.9.0
internal/controller/release.pendingSyncinternal/controller/release/controller.go:341internal/observer.(*HealthController).syncHandlerinternal/observer/health.go:115