Skip to content

Fix asynchronous checkpoint cursor acquisition (#88) - #103

Merged
AGiorgetti merged 4 commits into
developfrom
fix/88-async-checkpoint-reads
Nov 3, 2026
Merged

AGiorgetti merged 4 commits into
developfrom
fix/88-async-checkpoint-reads

Conversation

@AGiorgetti

@AGiorgetti AGiorgetti commented Nov 2, 2026 •

Copy link
Copy Markdown
Member

Fixes #88.

Changes

  • Acquire checkpoint cursors with FindAsync in both asynchronous helpers instead of FindSync.
  • Preserve cancellation tokens, checkpoint selection, duplicate-ID resynchronization, and recycle-bin cleanup boundaries.
  • Rely on the driver's FirstOrDefaultAsync cursor disposal, including failure and cancellation.
  • Add 15 parameterized regression scenarios (45 assertions) covering default NextAsync, recycle cleanup, and duplicate-ID recovery with successful, empty, canceled-find, canceled-cursor, and failed-cursor outcomes.
  • Update the changelog. No public API or persisted-format change.

Validation

  • Static review and whitespace checks passed; remote head 4a64863 verified.
  • Local builds and tests have not run. Earlier desktop restore was denied for unexpected instance-metadata access, and the cloud environment has no .NET SDK.
  • Exact-head CI 41541602027 passed: Windows and Ubuntu solution builds; .NET 8/9/10 each passed 515 tests with zero failures or skips, including the 45 issue-88 regression tests.
  • Two earlier CI attempts identified test-fixture problems (BSON assertion overload selection and the mocked DeleteManyAsync overload); both were corrected without changing the production fix. No pre-fix red test run is claimed.
  • The existing test project resolves MongoDB.Driver 3.9, while the library declares 3.0. CI does not establish complete minimum-driver compatibility.
  • Test-only FakeItEasy reference supports deterministic driver-seam regressions; no production dependency was changed.

Co-authored by Alessandro Giorgetti and Codex (OpenAI).

@AGiorgetti
AGiorgetti marked this pull request as ready for review November 3, 2026 11:20
@AGiorgetti
AGiorgetti merged commit 67d0a9d into develop Nov 3, 2026
5 checks passed
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.

[P2] Async checkpoint reads execute FindSync before returning their Task

1 participant