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

tarantool / tarantool / 13416885935

19 Feb 2025 03:58PM UTC coverage: 86.038% (-0.006%) from 86.044%
13416885935

push

github

locker
vinyl: don't create cache chain over unconfirmed deferred DELETE

While scanning a non-unique secondary index of a vinyl space, we skip
a tuple if there's no match for it in the primary index because it means
that the tuple was overwritten by a newer statement but the secondary
index DELETE was deferred until compaction. We still create a cache
chain link in this case so that we skip the overwritten tuple when
we scan the secondary index next time. We do it even if the overwriting
statement is unconfirmed (not yet written to WAL), which is actually
incorrect. The problem is that if the overwriting statement is rolled
back on a WAL write error, the chain created in the secondary index
cache won't be broken because nothing was actually written to the
secondary index (DELETE was deferred) therefore there's nothing to
roll back therefore there's nothing to invalidate the cache by.
As a result, the tuple that the user attempted to delete but failed
due to a WAL error will become inaccessible via the secondary index
because of the stale cache chain.

Fix this issue by disabling creation of a cache chain link in case
the read iterator skipped an unconfirmed deferred DELETE statement.

Closes #11140

NO_DOC=bug fix

(cherry picked from commit 74f45f41c)

63448 of 114806 branches covered (55.27%)

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

28 existing lines in 14 files now uncovered.

94404 of 109724 relevant lines covered (86.04%)

1888360.88 hits per line

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

89.49
/src/box/memtx_engine.cc


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