Closed NickVolynkin closed 1 year ago
What was changed by commit https://github.com/tarantool/tarantool/commit/588170a77c9aba3d0cf898d0134286c6ffd46339: a read (get, select) outside a transaction now never returns unconfirmed data (committed, but not yet written to WAL). The behavior or a read inside a transaction depends on the transaction isolation level.
a read (get, select) outside a transaction now never returns unconfirmed data (committed, but not yet written to WAL).
So is it expected that the update yield now:
https://github.com/tarantool/queue/blob/master/queue/abstract/driver/utubettl.lua#L138-L141
?
The new Vinyl behavior is consistent with memtx mvcc. Enabling mvcc in the test breaks the test for memtx as well. (Although the probability of failure seems lower.)
a read (get, select) outside a transaction now never returns unconfirmed data (committed, but not yet written to WAL).
So is it expected that the update yield now:
https://github.com/tarantool/queue/blob/master/queue/abstract/driver/utubettl.lua#L138-L141
?
Update in Vinyl may yield anyway. It could yield before the aforementioned commit.
Switching single-statement reads to the 'read-committed' isolation level (may be done only at compile time) eliminates the issue.
Commit https://github.com/tarantool/tarantool/commit/588170a77c9aba3d0cf898d0134286c6ffd46339 has changed behavior of vinyl. This might have broken the test's expectations. The test almost always fails in the integration job: https://github.com/tarantool/tarantool/actions/runs/3264906596/jobs/5369677748