|
Ran
|
Jobs
1
|
Files
525
|
Run time
1min
|
Badge
README BADGES
|
push
github
box: skip NOPs in transaction iterators A NOP statement changes no data but preserves its position in the WAL. It can be produced e.g. by canceling a write in a before_replace trigger or by skipping a duplicate-key conflict with replication_skip_conflict. However, transaction iterators (like in `on_commit/rollback` e.g.) did not handle NOPs properly. Iterating over one worked while a canceled write still had its space (like in local NOPification with `before_replace`). But a NOP read from WAL or replication has no space, so accessing it through an iterator crashed. Dispatching triggers for several spaces could crash for the same reason, even if their callbacks never used the iterator. Let's skip NOPs completely in transaction iterators. This changes behavior for the NOPs during local NOPification, as triggers did see the NOP row before the patch as `N, nil, nil, K` and now they won't. The compat is not introduced, since it's doubtful anyone relied on NOPs to be visible, since in almost all cases it just caused crash. Closes #13163 NO_DOC=bugfix (cherry picked from commit a1a0e05a1)
71416 of 119900 branches covered (59.56%)
8 of 8 new or added lines in 2 files covered. (100.0%)
74 existing lines in 14 files now uncovered.106966 of 121875 relevant lines covered (87.77%)
1381025.89 hits per line
| Lines | Coverage | ∆ | File |
|---|---|---|---|
| 23 |
91.7
|
0.02% | src/box/space.c |
| 16 |
90.71
|
-0.49% | src/box/box.cc |
| 8 |
60.42
|
-3.55% | src/lib/core/fio.c |
| 6 |
78.03
|
-1.52% | src/main.cc |
| 4 |
93.43
|
-0.36% | src/box/xrow_update_field.c |
| 3 |
92.59
|
-0.09% | src/box/vinyl.c |
| 3 |
88.21
|
-0.19% | src/box/vy_run.c |
| 2 |
95.13
|
-0.21% | src/box/replication.cc |
| 2 |
86.9
|
-0.29% | src/lib/core/say.c |
| 2 |
80.95
|
-9.52% | src/lib/core/tt_sigaction.c |
| 2 |
97.15
|
-0.1% | src/lib/msgpuck/msgpuck.h |
| 1 |
96.34
|
-0.01% | src/box/relay.cc |
| 1 |
85.98
|
0.0% | src/box/xlog.c |
| 1 |
93.76
|
0.0% | src/lib/core/fiber.c |
| ID | Job ID | Ran | Files | Coverage | |
|---|---|---|---|---|---|
| 1 | 39416650057.1 | 525 |
87.77
|
GitHub Action Run |
| Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line | Branch Hits | Branch Misses |
|---|