memtx: fix self-conflicting of transactions#7236
Merged
alyapunov merged 3 commits intotarantool:masterfrom Jun 22, 2022
Merged
Conversation
a5d9eb7 to
d78be38
Compare
drewdzzz
requested changes
Jun 7, 2022
Contributor
drewdzzz
left a comment
There was a problem hiding this comment.
It's all good except for one thing: it's better to write a changelog, at least one for the entire patch, because you changed the behavior of the transaction manager.
Member
Author
|
@drewdzzz these changes cannot be observed by users. |
When full scans are checked on writes, we must only conflict transactions other than the one that did the full scan. NO_CHANGELOG=internal bugfix NO_DOC=bugfix Closes tarantool#7221
d78be38 to
8273bf0
Compare
drewdzzz
approved these changes
Jun 8, 2022
alyapunov
approved these changes
Jun 9, 2022
| @@ -1499,7 +1499,8 @@ check_hole(struct space *space, uint32_t index, | |||
|
|
|||
Contributor
There was a problem hiding this comment.
Could you please make the title of the commit a bit shorter? It is shown very strange in Web (an I bet somewhere else).
Member
Author
There was a problem hiding this comment.
Fixed: shortened the commit subject.
@locker seems like the same bug in checkpatch (tarantool/checkpatch#18).
On insertion, when point holes are checked on insertion, we must only conflict transactions other than the one that read the hole. NO_CHANGELOG=internal bugfix NO_DOC=bugfix Closes tarantool#7234 Closes tarantool#7235
We assume that a transaction cannot conflict itself and that only a non-prepared transaction can be conflicted: track these assumptions with appropriate assertions. NO_CHANGELOG=internal assertions NO_DOC=internal assertions NO_TEST=internal assertions
8273bf0 to
a0e36f5
Compare
Member
|
Cherry-picked to 2.10. |
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
memtx: fix DML causing transaction self-conflict after full scan in HASH
When full scans are checked on writes, we must only conflict transactions
other than the one that did the full scan.
Closes #7221
memtx: fix DML causing transaction self-conflict after selecting same key
On insertion, when point holes are checked on insertion, we must only
conflict transactions other than the one that read the hole.
NO_CHANGELOG=internal bugfix
NO_DOC=bugfix
Closes #7234
Closes #7235
memtx: add assertions for self-conflicting of transactions
We assume that a transaction cannot conflict itself and that only a
non-prepared transaction can be conflicted: track these assumptions with
appropriate assertions.