Skip to content

memtx HASH index 'GT' iterator dirty reads #7477

@CuriousGeorgiy

Description

@CuriousGeorgiy

Steps to reproduce

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

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

box.cfg{memtx_use_mvcc_engine = true}

local s = box.schema.space.create('s')
s:create_index('pk', {type = 'HASH'})

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

tx1:begin()
tx2:begin()
tx3:begin()
tx4:begin()
tx5:begin()

tx1('box.space.s:insert{7}')
tx2('box.space.s:insert{4}')
tx2('box.space.s:insert{5}')
tx3('box.space.s:insert{8}')

tx4('box.space.s:insert{2}')
tx4('box.commit()')

log.info("%s", json.encode(tx5('box.space.s.index[0]:select({8}, {iterator = "GT"})')))

os.exit()

Actual behavior

[[[2],[4]]]

Expected behavior

[[[2]]]

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions