Skip to content

A sufficient number of cascade rollbacks block the WAL #11081

@nshy

Description

@nshy

Bug description

On cascade rollback WAL queue size is miscalculated and as a result writing to WAL is completely blocked.

Steps to reproduce

Run next script:

os.execute('rm -f *.snap *.xlog *.vylog')
box.cfg{log_level = 'warn', wal_queue_max_size = 100}
local s = box.schema.create_space('test')
s:create_index('pk')
box.error.injection.set('ERRINJ_WAL_IO', true)
pcall(s.insert, s, {1, string.rep('a', 1000)})
box.error.injection.set('ERRINJ_WAL_IO', false)
-- Now journal queue size is beyound threshold forever and operations are stuck.
s:insert({1})
os.exit()

Actual behavior

Hangs.

Expected behavior

Do the insertion successfully.

Metadata

Metadata

Assignees

Labels

2.11Target is 2.11 and all newer release/master branches3.2Target is 3.2 and all newer release/master branches3.3Target is 3.3 and all newer release/master branchesbugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions