|
Ran
|
Jobs
1
|
Files
479
|
Run time
2min
|
Badge
README BADGES
|
push
github
vinyl: fix race between manual compaction and range splitting To force compaction, index:compact() sets the needs_compaction flag on all ranges of the target LSM tree. When a range is split, the new ranges inherit this flag. The problem is that there's a yield caused by vy_log_tx_commit() between setting the flag in vy_lsm_split_range() and adding the new ranges to the LSM tree. If vinyl_index_compact() is called while vy_lsm_split_range() is waiting for vy_log_tx_commit() to complete, the needs_compaction flag will be set for the old range but not for the new ranges hence compaction won't be triggered for them. This breaks assumptions made by some tests (select_consistency_test, for example). Fix this issue by setting the needs_compaction flag right before modifying the LSM tree, after the vylog record is committed. Note that vy_lsm_coalesce_range() isn't affected because it already sets the flag after the vylog write. Closes #11019 NO_DOC=bug fix NO_TEST=checked by existing tests; difficult to reproduce NO_CHANGELOG=minor issue; unlikely to happen; no adverse effects; easy to work around (just call index:compact() again) (cherry picked from commit 501ef6165)
63449 of 114806 branches covered (55.27%)
3 of 3 new or added lines in 1 file covered. (100.0%)
36 existing lines in 10 files now uncovered.94402 of 109724 relevant lines covered (86.04%)
1896242.14 hits per line
| Lines | Coverage | ∆ | File |
|---|---|---|---|
| 1 |
96.12 |
-0.19% | src/box/relay.cc |
| 1 |
95.4 |
-1.15% | src/histogram.c |
| 1 |
91.45 |
-0.11% | src/lib/swim/swim.c |
| 2 |
93.79 |
-0.33% | src/box/memtx_space.c |
| 2 |
86.52 |
0.0% | src/box/vy_run.c |
| 2 |
85.71 |
-9.52% | src/lib/core/tt_sigaction.c |
| 3 |
93.2 |
-1.02% | src/box/gc.c |
| 3 |
92.0 |
-0.14% | src/box/vinyl.c |
| 4 |
81.82 |
-12.12% | src/lua/minifio.c |
| 17 |
86.65 |
-0.52% | src/box/box.cc |
| ID | Job ID | Ran | Files | Coverage | |
|---|---|---|---|---|---|
| 1 | 13459374128.1 | 479 |
86.04 |
GitHub Action Run |
| Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line | Branch Hits | Branch Misses |
|---|