|
Ran
|
Jobs
1
|
Files
480
|
Run time
2min
|
Badge
README BADGES
|
push
github
limbo: allow current term CONFIRMs to be nopified Previously the limbo would treat receipt of CONFIRM for an already confirmed LSN in the current term as an error. But actually there seems to be no reason to do that. Here is a usecase. A replica starts joining a master. The master has some txns in the limbo. The relay would flush the txns to the journal and get its vclock. This is going to be the snapshot vclock of the replica. Then the relay waits for the txns to get committed. CONFIRMs for those txns are going to get written after the replica's vclock. Next, the relay would save the current confirmed LSN and send it + the data to the replica. Logically the replica looks good. It has some valid fully confirmed snapshot and a correctly saved limbo checkpoint with the right confirmed LSN. But now the replica would start catching up and would download the CONFIRM from the master which it actually already knows. It was in the initial limbo checkpoint sent to this replica. It is sent "again" because the replica's vclock doesn't include this CONFIRM yet. It seems logical that the replica must simply nopify such CONFIRM. So lets do just that. Similar logic seems to be applicable to ROLLBACK. Except that it was already idempotent in the current term. And in the older terms its effect is already applied by PROMOTE of the current term. Now those strict filters only remain for PROMOTE/DEMOTE commands. Closes #11180 Closes #11790 NO_DOC=bugfix NO_CHANGELOG=already written (cherry picked from commit e454545e5)
63640 of 115116 branches covered (55.28%)
39 of 44 new or added lines in 2 files covered. (88.64%)
409 existing lines in 13 files now uncovered.94623 of 109910 relevant lines covered (86.09%)
1896123.91 hits per line
| Lines | Coverage | ∆ | File |
|---|---|---|---|
| 2 |
90.29 |
0.28% | src/box/applier.cc |
| 3 |
92.52 |
0.01% | src/box/txn_limbo.c |
| Lines | Coverage | ∆ | File |
|---|---|---|---|
| 1 |
96.0 |
-4.0% | src/lib/core/trigger.h |
| 2 |
96.33 |
-0.39% | src/box/relay.cc |
| 2 |
86.39 |
0.0% | src/box/vy_run.c |
| 2 |
95.4 |
-2.3% | src/histogram.c |
| 4 |
91.91 |
-0.14% | src/box/vinyl.c |
| 4 |
93.63 |
-0.96% | src/lib/swim/swim_io.c |
| 5 |
95.0 |
1.02% | src/box/journal.c |
| 5 |
93.71 |
-0.83% | src/box/replication.cc |
| 28 |
89.63 |
0.19% | src/box/memtx_engine.cc |
| 33 |
92.71 |
-0.01% | src/box/txn.c |
| 44 |
92.52 |
0.01% | src/box/txn_limbo.c |
| 53 |
89.34 |
-0.24% | src/box/wal.c |
| 226 |
86.62 |
0.0% | src/box/box.cc |
| ID | Job ID | Ran | Files | Coverage | |
|---|---|---|---|---|---|
| 1 | 18532720146.1 | 480 |
86.09 |
GitHub Action Run |
| Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line | Branch Hits | Branch Misses |
|---|