|
Ran
|
Files
514
|
Run time
23s
|
Badge
README BADGES
|
push
github
vinyl: fix gc of incomplete runs left after dropped space A space may be dropped while it's being compacted. The vinyl garbage collector purges all run files left after a dropped space, including `.run.inprogress` and `.index.inprogress` files currently being written by compaction tasks. As a result, when a compaction task is completed, it may fail to rename the new run file with a `ENOENT` error: ``` vinyl.compaction.0/102/task xlog.c:800 !> can't rename ./512/0/00000000000000000006.index.inprogress to ./512/0/00000000000000000006.index: No such file or directory ``` This bug has another effect. If the compaction starts writing the file after the garbage collector purges meta-information about it from vylog, the run file will be successfully written but never committed to vylog. As a result, it will never be deleted. Let's fix this issue by making the garbage collector skip incomplete runs unless explicitly instructed to delete them (`VY_GC_INCOMPLETE`). Compaction tasks now discard run files on completion if the space was dropped while compaction was in progress so that they are removed during the next garbage collection round. Closes #11163 NO_DOC=bug fix (cherry picked from commit 219e27d18)
68849 of 122093 branches covered (56.39%)
101509 of 116211 relevant lines covered (87.35%)
1954693.93 hits per line
| Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line | Branch Hits | Branch Misses |
|---|