|
Ran
|
Jobs
1
|
Files
480
|
Run time
2min
|
Badge
README BADGES
|
push
github
txn: forbid waiting for acks on fully local transactions We recommend making all spaces synchronous (including the system ones) whenever the user has at least one of them. However, once `_truncate` becomes synchronous, it is impossible to truncate any local space, either on the master or on a replica. On master the truncate succeeds, however recovering from such xlogs produces "Tarantool does not support Non-blocking commit of a synchronous txn" error and replica disconnects from the master with SplitBrain: "got a request mentioning future lsn". On replica the truncate hangs (in case of Debug build the assertion for non-ro limbo fails). The `_truncate` space itself is unusual: it marks rows related to local spaces as GROUP_LOCAL (they are not replicated), while all other rows remain GROUP_GLOBAL. As a result, when we truncate a local space all rows in the transaction are local, and we add such transaction to limbo. If truncate of local space happens on master, the transaction is confirmed and since replica doesn't have it, SplitBrain occurs. On replica such truncate cannot be confirmed, since replica is not an owner of the limbo. We should not mark such transactions as synchronous. Instead, it should follow the asynchronous transaction path: add them to limbo iff it's not empty. Let's filter such case. Closes #12585 NO_DOC=bugfix Co-authored-by: Serge Petrenko <sergepetrenko@tarantool.org> (cherry picked from commit 6adf3f407)
63695 of 115144 branches covered (55.32%)
6 of 6 new or added lines in 1 file covered. (100.0%)
26 existing lines in 9 files now uncovered.94670 of 109931 relevant lines covered (86.12%)
1898326.99 hits per line
| Lines | Coverage | ∆ | File |
|---|---|---|---|
| 7 |
92.21 |
-1.07% | src/box/txn_limbo.c |
| 5 |
89.63 |
-0.51% | src/box/memtx_engine.cc |
| 3 |
90.08 |
-0.16% | src/box/applier.cc |
| 3 |
97.61 |
-0.23% | src/box/memtx_tx.c |
| 2 |
86.62 |
-0.04% | src/box/box.cc |
| 2 |
86.46 |
0.0% | src/box/vy_run.c |
| 2 |
95.4 |
-2.3% | src/histogram.c |
| 1 |
92.51 |
0.51% | src/box/vinyl.c |
| 1 |
95.24 |
-1.59% | src/lib/small/include/small/quota.h |
| ID | Job ID | Ran | Files | Coverage | |
|---|---|---|---|---|---|
| 1 | 25000294112.1 | 480 |
86.12 |
GitHub Action Run |
| Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line | Branch Hits | Branch Misses |
|---|