Ran
|
Jobs
1
|
Files
514
|
Run time
1min
|
Badge
Embed ▾
README BADGES
|
push
github
vinyl: fix compaction crash on disk read error `vy_slice_stream_next()` clears the return value on failure. This isn't expected by `vy_write_iterator_merge_step()`, which doesn't update the source position in the `vy_wirte_iterator::src_heap` in this case. As a result, an attempt to remove `end_of_key_src` from the heap in `vy_write_iterator_build_history()` may crash as follows: ``` # 1 0x572a2ecc21a6 in crash_collect+256 # 2 0x572a2ecc2be2 in crash_signal_cb+100 # 3 0x7cfef6645320 in __sigaction+80 # 4 0x572a2eab16de in tuple_format+16 # 5 0x572a2eab1a25 in vy_stmt_is_key+24 # 6 0x572a2eab1be8 in vy_stmt_compare+89 # 7 0x572a2eab1e37 in vy_entry_compare+74 # 8 0x572a2eab2913 in heap_less+88 # 9 0x572a2eab21e3 in vy_source_heap_sift_up+255 # 10 0x572a2eab20b9 in vy_source_heap_update_node+54 # 11 0x572a2eab25c1 in vy_source_heap_delete+249 # 12 0x572a2eab4134 in vy_write_iterator_build_history+1497 # 13 0x572a2eab4995 in vy_write_iterator_build_read_views+193 # 14 0x572a2eab4ce6 in vy_write_iterator_next+380 # 15 0x572a2eadd20b in vy_task_write_run+1132 # 16 0x572a2eade6cf in vy_task_compaction_execute+124 # 17 0x572a2eadfa8d in vy_task_f+445 # 18 0x572a2e9ea143 in fiber_cxx_invoke(int (*)(__va_list_tag*), __va_list_tag*)+34 # 19 0x572a2eccee7c in fiber_loop+219 # 20 0x572a2f0aef18 in coro_init+120 ``` Normally, a function shouldn't update the return value on failure so let's fix `vy_slice_stream_next()`. Closes #10555 NO_DOC=bug fix (cherry picked from commit f1144c533)
68442 of 121711 branches covered (56.23%)
4 of 4 new or added lines in 2 files covered. (100.0%)
80 existing lines in 20 files now uncovered.101059 of 115828 relevant lines covered (87.25%)
2525580.36 hits per line
Lines | Coverage | ∆ | File |
---|---|---|---|
1 |
93.4 |
-0.17% | src/box/txn_limbo.c |
1 |
63.97 |
-0.47% | src/lib/core/fio.c |
1 |
85.48 |
-1.61% | src/box/lua/ctl.c |
1 |
96.55 |
-1.15% | src/histogram.c |
1 |
94.24 |
-0.72% | src/box/vy_point_lookup.c |
1 |
89.23 |
-1.54% | src/lib/small/small/lsregion.c |
1 |
90.93 |
-0.1% | src/box/vy_scheduler.c |
2 |
87.74 |
-0.13% | src/box/vy_run.c |
2 |
95.45 |
-4.55% | src/lib/json/json.h |
2 |
94.11 |
-0.39% | src/lua/fiber.c |
2 |
94.96 |
-0.37% | src/box/relay.cc |
2 |
91.34 |
0.57% | src/box/box.cc |
2 |
94.59 |
-0.27% | src/box/replication.cc |
2 |
84.53 |
-0.72% | src/lib/core/coio.c |
3 |
92.94 |
-0.07% | src/lib/core/fiber.c |
3 |
94.44 |
-0.98% | src/box/gc.c |
4 |
95.58 |
-0.43% | src/lib/msgpuck/msgpuck.h |
6 |
94.18 |
-0.79% | src/box/xrow_update_field.c |
7 |
94.93 |
-1.54% | src/box/vy_read_iterator.c |
36 |
86.68 |
-0.34% | src/box/vy_stmt.c |
ID | Job ID | Ran | Files | Coverage | |
---|---|---|---|---|---|
1 | 10958820991.1 | 514 |
87.25 |
GitHub Action Run |
Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line | Branch Hits | Branch Misses |
---|