• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

tarantool / tarantool / 13518552291

25 Feb 2025 10:00AM UTC coverage: 87.418% (-0.001%) from 87.419%
13518552291

push

github

locker
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)

69842 of 123747 branches covered (56.44%)

7 of 7 new or added lines in 2 files covered. (100.0%)

46 existing lines in 13 files now uncovered.

102884 of 117692 relevant lines covered (87.42%)

2239213.98 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

97.36
/src/lib/msgpuck/msgpuck.h


Source Not Available

STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc