memtx: fix loss of committed tuple in secondary index
Concurrent transactions can try to insert tuples that intersect only by parts of secondary index: in this case when one of them gets prepared, the others get conflicted, but the committed story does not get retained (because the conflicting statements are not added to the committed story's delete statement list as opposed to primary index) and is lost after garbage collection: retain stories if there is a newer uncommitted story in the secondary indexes' history chain. Closes #7712 NO_DOC=bugfix
Showing
- changelogs/unreleased/gh-7712-loss-of-commited-tuple-in-secondary-index.md 4 additions, 0 deletions...ased/gh-7712-loss-of-commited-tuple-in-secondary-index.md
- src/box/memtx_tx.c 9 additions, 0 deletionssrc/box/memtx_tx.c
- test/box-luatest/gh_7712_loss_of_commited_tuple_in_secondary_index_test.lua 39 additions, 0 deletions...h_7712_loss_of_commited_tuple_in_secondary_index_test.lua
Loading