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

tarantool / tarantool / 18975815726

31 Oct 2025 02:35PM UTC coverage: 87.58% (+0.008%) from 87.572%
18975815726

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

(cherry picked from commit 2a9a463e5)

69118 of 116507 branches covered (59.33%)

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

65 existing lines in 16 files now uncovered.

103977 of 118722 relevant lines covered (87.58%)

1404850.55 hits per line

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

94.22
/src/lua/fiber.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