memtx: always read prepared tuples of system spaces
Since we often search spaces, users, funcs and so on in internal caches that have `read-committed` isolation level (prepared tuples are seen), let's always allow to read prepared tuples of system spaces. Another advantage of such approach is that we never handle MVCC when working with system spaces, so after the commit they will behave in the same way - prepared tuples will be seen. The only difference is that readers of prepared rows will be aborted if the row will be rolled back. By the way, the inconsistency between internal caches and system spaces could lead to crash in some sophisticated scenarios - the commit fixes this problem as well because now system spaces and internal caches are synchronized. Closes #10262 Closes tarantool/security#131 NO_DOC=bugfix (cherry picked from commit b33f17b25de6bcbe3ebc236250976e4a0250e75e)
Showing
- changelogs/unreleased/gh-10262-inconsistency-between-caches-and-data.md 4 additions, 0 deletions...eleased/gh-10262-inconsistency-between-caches-and-data.md
- src/box/memtx_tx.c 5 additions, 3 deletionssrc/box/memtx_tx.c
- test/box-luatest/gh_10262_inconsistency_between_caches_and_data_test.lua 80 additions, 0 deletions...t/gh_10262_inconsistency_between_caches_and_data_test.lua
Loading
Please register or sign in to comment