Skip to content

Phantom read after gets from different indexes #7828

@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')
box.space.s:create_index('sk', {parts = {{2}}})

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}')

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

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

tx1('box.rollback()')

box.space.s:insert{0, 2}

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

os.exit()

Actual behavior

2022-10-20 11:50:57.427 [3180] main/103/repro.lua I> ""
2022-10-20 11:50:57.427 [3180] main/103/repro.lua I> [[]]
2022-10-20 11:50:57.427 [3180] main/103/repro.lua I> [[[0,0]]]

Expected behavior

2022-10-20 11:50:57.427 [3180] main/103/repro.lua I> ""
2022-10-20 11:50:57.427 [3180] main/103/repro.lua I> [[]]
2022-10-20 11:50:57.427 [3180] main/103/repro.lua I> [[]]

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions