|
Ran
|
Files
305
|
Run time
1min
|
Badge
README BADGES
|
push
travis-ci
<a href="https://github.com/tarantool/tarantool/commit/<a class=hub.com/tarantool/tarantool/commit/afe89a1153223822accdbcaac461eb3028a56b9a">afe89a115<a href="https://github.com/tarantool/tarantool/commit/afe89a1153223822accdbcaac461eb3028a56b9a">">vinyl: abort rw transactions when instance switches to ro A Vinyl transaction may yield while having a non-empty write set. This opens a time window for the instance to switch to read-only mode. Since we check ro flag only before executing a DML request, the transaction would successfully commit in such a case, breaking the assumption that no writes are possible on an instance after box.cfg{read_only=true} returns. In particular, this breaks master-replica switching logic. Fix this by aborting all local rw transactions before switching to read-only mode. Note, remote rw transactions must not be aborted, because they ignore ro flag. Closes #4016 (cherry picked from commit </a><a class="double-link" href="https://github.com/tarantool/tarantool/commit/<a class="double-link" href="https://github.com/tarantool/tarantool/commit/6666db8d5b5736abcfc5b71d1f7e1ac3dd34e730">6666db8d5</a>">6666db8d5</a><a href="https://github.com/tarantool/tarantool/commit/afe89a1153223822accdbcaac461eb3028a56b9a">)
41356 of 50143 relevant lines covered (82.48%)
839807.31 hits per line
| Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line |
|---|