-
Notifications
You must be signed in to change notification settings - Fork 78
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
fix: ensure transactions rollback on failure #767
Merged
Merged
Changes from 14 commits
Commits
Show all changes
16 commits
Select commit
Hold shift + click to select a range
59789b9
raise from in failed transaction
daniel-sanche de19676
raise from in async transactions
daniel-sanche 4e77e28
add from exception
daniel-sanche 9efb94b
ensure rollback is called
daniel-sanche d8e3aab
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] eccb32a
changed docstring
daniel-sanche 39d5208
Merge branch 'main' into actionable_errors
daniel-sanche f89deff
added rollback source_exc tests
daniel-sanche c96166c
restructured transactione xception handling
daniel-sanche 4fbd6ed
updated tests
daniel-sanche 480e2d3
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] 42cf415
ran blacken
daniel-sanche a8c0b87
fixed lint issues
daniel-sanche 7f9f0ef
removed unneeded function from superclass
daniel-sanche 8520d42
fixed test names
daniel-sanche 9da83bd
rely on native exception chaining
daniel-sanche 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 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 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 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 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
Oops, something went wrong.
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.
It seems unfortunate that we have to add an additional parameter to this function. I am guessing the underscore prefix means it is private? If so, I guess it's not that big of a deal, but if this argument is only being used for that one case in the call function then could we catch errors there caused by
await transaction._rollback(source_exc=exc)
and doraise exc from source_exc
there instead?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.
I'm not worried about the new parameter because 1) this is a private function, and 2) it's an optional paramater, so existing behaviour would remain consistent
But that's a good point that after this refactor, the rollback only happens in one place. In this case, we can rely on built-in exception chaining instead of
raise from
, since the exception occurs while handling a different exception. I simplified the code to remove thesource_exc