Skip to content

Phantom read after gets from different indexes #7837

@CuriousGeorgiy

Description

@CuriousGeorgiy

Steps to reproduce

os.execute('rm -rf *.snap *.xlog *.vylog 512')

local json = require('json')
local log = require('log')
local txn_proxy = require('txn_proxy')

box.cfg{memtx_use_mvcc_engine = true}

box.schema.space.create('s')
box.space.s:create_index('pk', {parts = {{1}, {2}}})
box.space.s:create_index('sk1', {parts = {{3}}})

local tx1 = txn_proxy:new()
local tx2 = txn_proxy:new()
local tx3 = txn_proxy:new()

tx1('box.begin()')
tx2('box.begin()')
tx3('box.begin()')

tx1('box.space.s:replace{0, 1, 2}')

tx2('box.space.s.index[1]:get{2}')
tx2('box.space.s:get{0, 1}')

tx3('box.space.s:insert{0, 2, 2}')

tx1('box.rollback()')

box.space.s:insert{0, 1, 3}

log.info(json.encode(tx2('box.space.s:select({}, {fullscan = true})')))

os.exit()

Actual behavior

2022-10-23 14:36:33.256 [78495] main/103/repro.lua I> [[[0,1,3]]]

Expected behavior

2022-10-23 14:36:33.256 [78495] main/103/repro.lua I> [[]]

Metadata

Metadata

Labels

bugSomething isn't workingduplicateThis issue or pull request already existsmemtxmvcc

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions