You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
REP-6785 Persist resume token after rechecks (#161)
For some time the verifier has had a race condition where it would, immediately after passing a batch of events to the recheck-enqueue thread, persist the change stream’s resume token. Thus, if the recheck-enqueue thread failed, the verifier could have restarted and skipped documents.
PR #156 aggravated this by storing multiple batches of change events in the channel between the reader and recheck-enqueue threads. Now, if there’s a failure after persisting a resume token, there are very good odds that documents will be skipped.
This changeset fixes that by moving the resume token’s persistence to the recheck-enqueue thread. Now each resume token is sent along with its batch to the recheck-enqueue thread, and only after that batch is persisted is its resume token persisted.
Msg("Failed to persist resume token. Because of this, if the verifier restarts, it will have to re-process already-handled change events. This error may be transient, but if it recurs, investigate.")
0 commit comments