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

tarantool / tarantool / 13518576674

25 Feb 2025 10:01AM UTC coverage: 86.021% (-0.03%) from 86.053%
13518576674

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)

63428 of 114804 branches covered (55.25%)

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

47 existing lines in 9 files now uncovered.

94381 of 109719 relevant lines covered (86.02%)

1891383.34 hits per line

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

95.18
/src/lua/fiber.c


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