Skip to content

Repeatable replace with memtx transaction manager enabled triggers assertion #7214

@CuriousGeorgiy

Description

@CuriousGeorgiy

Steps to reproduce

#!/usr/bin/env tarantool

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

local txn_proxy = require('txn_proxy')

box.cfg{memtx_use_mvcc_engine = true}

box.schema.space.create('s')
box.space.s:create_index('pk')

local tx1 = txn_proxy:new()
tx1('box.begin()')

local tx2 = txn_proxy:new()
tx2('box.begin()')

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

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

tx1('box.commit()')
tx2('box.commit()')

os.exit()

Actual behavior

Assertion failed: (stmt->del_story == story->link[0].older_story), function memtx_tx_history_prepare_insert_stmt, file memtx_tx.c, line 2103.

Expected behavior
Script successfully exits.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions