Skip to content

memtx nullable TREE index get transaction management phantom reads #7685

@CuriousGeorgiy

Description

@CuriousGeorgiy

Steps to reproduce

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

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

ffi.cdef('bool flag;')

box.cfg{memtx_use_mvcc_engine = true}

local s = box.schema.space.create('s')
s:create_index('pk')
s:create_index('sk', {parts = {{2, 'uint', is_nullable = true}}})

local tx = txn_proxy:new()
tx:begin()

ffi.C.flag = true
tx('box.space.s.index[1]:get{0}')
tx('box.space.s:replace{1, 1}')

s:replace{0, 0}
log.info('%s', json.encode(tx('box.space.s.index[1]:get{0}')))

os.exit()

Actual behavior

[[0,0]]

Expected behavior

""

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions