Skip to content

test: first attempt with JSON specifications for transactions#3

Merged
paulocoghi merged 5 commits into
masterfrom
feat/mongo-8.0-transactions-and-sessions
Jul 17, 2026
Merged

test: first attempt with JSON specifications for transactions#3
paulocoghi merged 5 commits into
masterfrom
feat/mongo-8.0-transactions-and-sessions

Conversation

@paulocoghi

@paulocoghi paulocoghi commented Jul 16, 2026

Copy link
Copy Markdown
Member

This PR brings cryomongo into 100% compliance with the official MongoDB transactions and transactions-convenient-api specifications.

  • Convenient API: Completely rewrote Session::ClientSession#with_transaction to implement the specification's strict exponential backoff, jitter, and 120-second fallback timeouts.
  • Socket Timeouts: Fixed a long-standing issue where socket_timeout and connect_timeout configurations were parsed but never actually applied to the underlying TCPSocket/UNIXSocket.
  • Testing Engine: The Unified Test Runner now supports Session entities, assertSessionPinned, assertSessionTransactionState, and automatically routes failCommand failpoints correctly to the admin database.
  • Crystal 1.21 Support: Removed the locked, two-year-old ameba dependency, ensuring our CI and local environments can upgrade smoothly to the latest Crystal releases.

Test Coverage: 324/324 Unified Tests Passing
(Note: The test suite now takes ~18 minutes to complete as it needs to execute physical blocking, connection drops, and backoff sleeps demanded by the transaction specification.)

@paulocoghi
paulocoghi merged commit 17ba688 into master Jul 17, 2026
1 check passed
@paulocoghi
paulocoghi deleted the feat/mongo-8.0-transactions-and-sessions branch July 17, 2026 09:15
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