memtx: fix definition of old story in MVCC insert statement preparation
During preparation of insert statements in MVCC, we define an old story and abort all transactions that delete this story. If there exists an older story in the history chain, but the story is deleted by a prepared (not necessarily committed) transaction, we consider that it de-facto does not exist anymore — this logic is consistent, since during preparation of the transaction deleting this story, the conflict resolution described above was already done. In this manner, there can be no more than one prepared statement deleting a story at any point in time. Closes #8104 NO_DOC=bugfix
Showing
- changelogs/unreleased/gh-8104-memtx-mvcc-assertion-failure-during-stmt-preparation.md 3 additions, 0 deletions...4-memtx-mvcc-assertion-failure-during-stmt-preparation.md
- src/box/memtx_tx.c 16 additions, 13 deletionssrc/box/memtx_tx.c
- test/box-luatest/gh_8104_memtx_mvcc_assertion_failure_during_stmt_preparation_test.lua 49 additions, 0 deletions...x_mvcc_assertion_failure_during_stmt_preparation_test.lua