|
Ran
|
Jobs
1
|
Files
518
|
Run time
2min
|
Badge
README BADGES
|
push
github
salad: fix crash on insertion into bps tree with OOM conditions On insertion into bps tree we first reserve blocks for the case we need to insert new leaf during rebalancing. Next there can be a free block on last extent in matras but no more free extents in tuple arena. So `bps_tree_reserve_blocks()` is able to allocate a block but then `bps_tree_garbage_push()` is called that touches a block. As there no free extents touch is failed which is unexpected and causes a crash. We don't need to touch the block on this path as block is newly allocated and is not shared with any read view. We don't need to touch block on other paths too (disposing a leaf or a inner node) because we move data from this node before so it is already should be touched. So just don't touch the block in `bps_tree_garbage_push()`. The issue is introduced in the commit 51c56d9b3319 ("salad: reserve extents for matras_touch on BPS tree operations") and unlocked in the commit 32b0678a74ab ("memtx: reserve extents in the RTREE index itself") where we removed crutches where we heuristically reserve memory for index operations. Closes #11326 NO_DOC=bugfix (cherry picked from commit 46cc98ba8)
69960 of 123833 branches covered (56.5%)
1 of 1 new or added line in 1 file covered. (100.0%)
41 existing lines in 17 files now uncovered.102963 of 117701 relevant lines covered (87.48%)
2192632.93 hits per line
| Lines | Coverage | ∆ | File |
|---|---|---|---|
| 1 |
96.14 |
-0.18% | src/box/relay.cc |
| 1 |
80.74 |
-0.41% | src/box/tuple_bloom.c |
| 1 |
93.62 |
0.0% | src/box/vy_range.c |
| 1 |
91.21 |
-0.1% | src/box/vy_scheduler.c |
| 1 |
90.38 |
-1.92% | src/lib/core/trigger.cc |
| 1 |
96.15 |
-0.06% | src/lib/salad/bps_tree.h |
| 1 |
95.24 |
-1.59% | src/lib/small/include/small/quota.h |
| 2 |
95.84 |
-0.11% | src/box/iproto.cc |
| 2 |
90.6 |
-0.19% | src/box/memtx_engine.cc |
| 2 |
87.43 |
0.13% | src/box/vy_run.c |
| 2 |
86.27 |
-0.42% | src/box/vy_stmt.c |
| 2 |
97.15 |
-0.1% | src/lib/msgpuck/msgpuck.h |
| 3 |
90.78 |
-0.15% | src/box/applier.cc |
| 4 |
94.62 |
0.0% | src/box/xrow_update_field.c |
| 4 |
92.84 |
-0.39% | src/lib/core/fiber.c |
| 4 |
81.82 |
-12.12% | src/lua/minifio.c |
| 9 |
88.14 |
-7.63% | src/box/vy_regulator.c |
| ID | Job ID | Ran | Files | Coverage | |
|---|---|---|---|---|---|
| 1 | 14269084504.1 | 518 |
87.48 |
GitHub Action Run |
| Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line | Branch Hits | Branch Misses |
|---|