Skip to content

mvcc: repeatable read violation after delete #6206

@Egor2001

Description

@Egor2001

Version

$ tarantool --version

Tarantool 2.9.0-119-g29e2931c6
Target: Linux-x86_64-Debug
Build options: cmake . -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BACKTRACE=ON
Compiler: /usr/bin/cc /usr/bin/c++
C_FLAGS: -fexceptions -funwind-tables -fno-omit-frame-pointer -fno-stack-protector -fno-common -fopenmp -msse2 -std=c11 -Wall -Wextra -Wno-strict-aliasing -Wno-char-subscripts -Wno-format-truncation -Wno-gnu-alignof-expression -fno-gnu89-inline -Wno-cast-function-type -Werror
CXX_FLAGS: -fexceptions -funwind-tables -fno-omit-frame-pointer -fno-stack-protector -fno-common -fopenmp -msse2 -std=c++11 -Wall -Wextra -Wno-strict-aliasing -Wno-char-subscripts -Wno-format-truncation -Wno-invalid-offsetof -Wno-gnu-alignof-expression -Wno-cast-function-type -Werror

Reproducer (requires txn_proxy.lua from test/box/lua)

yaml = require 'yaml'

box.cfg{memtx_use_mvcc_engine=true}

txn_proxy = require('txn_proxy')

spc = box.schema.space.create('test')
idx = spc:create_index('test', {type='tree'})

tx1 = txn_proxy.new()

tx1:begin()
print(yaml.encode(tx1('spc:select{}')))
spc:replace{1, 1}
print(yaml.encode(tx1('spc:select{}')))
tx1:commit()

spc:delete{1}

tx2 = txn_proxy.new()

tx2:begin()
print(yaml.encode(tx2('spc:select{}')))
spc:replace{1, 1}
print(yaml.encode(tx2('spc:select{}')))
tx2:commit()

spc:drop()

Actual behavior

---
- []
...

---
- []
...

---
- []
...

---
- [[1, 1]]
...

Expected behavior

---
- []
...

---
- []
...

---
- []
...

---
- []
...

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingmvcc

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions