• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

tarantool / tarantool / 18836661646

27 Oct 2025 09:47AM UTC coverage: 87.61% (-0.05%) from 87.661%
18836661646

push

github

sergepetrenko
memtx: abort gaps after rollback

This commit fixes a Memtx-MVCC related bug that could lead to dirty gap
read in secondary indexes after rollback.

One REPLACE transaction (prepared but not yet committed) creates a
temporary situation where another concurrent transaction cannot see a
specific key in a secondary index (a "read gap"). When the first
transaction then rolls back, the previous (replaced) tuple becomes visible
again, and the "read gap" becomes irrelevant (the key becomes visible once
more). In this case, the second transaction, which read the gap, should be
aborted. However, it successfully commits, leading to a non-serializable
schedule.

This commit fixes the issue by adding the necessary handling during
rollback. Now, all such irrelevant gaps are aborted.

Closes #11802

NO_DOC=bugfix

69926 of 117843 branches covered (59.34%)

9 of 9 new or added lines in 1 file covered. (100.0%)

124 existing lines in 26 files now uncovered.

105029 of 119883 relevant lines covered (87.61%)

1365917.23 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

88.82
/src/box/engine.c


Source Not Available

STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc