-
Notifications
You must be signed in to change notification settings - Fork 244
DRIVERS-2584 Errors handling in Convenient Transactions API #1475
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
comandeo
merged 9 commits into
mongodb:master
from
comandeo:2584-document-errors-handlinging-convenient-api
Dec 5, 2023
Merged
Changes from all commits
Commits
Show all changes
9 commits
Select commit
Hold shift + click to select a range
ff68a1e
DRIVERS-2584 Errors handling in Convenient Transactions API
comandeo-mongo eca77e8
Reword; add changelog entry
comandeo-mongo 390455c
Update source/transactions-convenient-api/transactions-convenient-api…
comandeo-mongo 2e7408e
Fix code review remarks
comandeo-mongo 951f12f
Add section to transaction spec
comandeo-mongo d49005e
Update changelogs
comandeo-mongo f24d753
Recommend to re-raise all errors
comandeo-mongo 07c8ca9
Use MSUT for recommendation
comandeo-mongo 0159410
Update source/transactions-convenient-api/transactions-convenient-api…
comandeo-mongo File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@comandeo: @alcaeus will bring this up with you, but when talking about this earlier today we discussed whether "NoSuchTransaction" should trigger an early break from the
withTransaction
retry loop since it may indicate that the callback did something unexpected.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We discussed this with @alcaeus last week, and decided to keep the existing commit logic.
Rationale: when a driver receives
NoSuchTransaction
, we do not know what happened. This situation may be a result of some server side situation, like a fail-over. If this is the case, the driver should retry the transaction completely.Since we cannot distinguish between situations where the callback did something unexpected and where something went wrong on the server, we should try to be safe, and retry. With the changes proposed in this PR we give users clear instructions to let the driver decide how to handle errors.