|
Ran
|
Jobs
1
|
Files
518
|
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)
69846 of 123749 branches covered (56.44%)
3 of 3 new or added lines in 1 file covered. (100.0%)
39 existing lines in 14 files now uncovered.102876 of 117682 relevant lines covered (87.42%)
2174282.25 hits per line
| Lines | Coverage | ∆ | File |
|---|---|---|---|
| 1 |
86.49 |
-1.35% | src/box/lua/ctl.c |
| 1 |
95.36 |
-0.31% | src/box/raft.c |
| 1 |
95.9 |
0.0% | src/box/replication.cc |
| 2 |
95.84 |
-0.11% | src/box/iproto.cc |
| 2 |
93.87 |
-0.31% | src/box/memtx_space.c |
| 2 |
95.92 |
-0.38% | src/box/relay.cc |
| 2 |
87.16 |
-0.13% | src/box/vy_run.c |
| 2 |
84.53 |
-0.72% | src/lib/core/coio.c |
| 2 |
97.26 |
0.1% | src/lib/msgpuck/msgpuck.h |
| 3 |
92.42 |
-0.09% | src/box/vinyl.c |
| 4 |
91.29 |
0.38% | src/box/box.cc |
| 4 |
93.62 |
-2.13% | src/box/vy_range.c |
| 4 |
92.74 |
-0.38% | src/lib/core/fiber.c |
| 9 |
88.14 |
-7.63% | src/box/vy_regulator.c |
| ID | Job ID | Ran | Files | Coverage | |
|---|---|---|---|---|---|
| 1 | 13459354959.1 | 518 |
87.42 |
GitHub Action Run |
| Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line | Branch Hits | Branch Misses |
|---|