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

tarantool / tarantool / 9415593681
88%

Build:
DEFAULT BRANCH: master
Ran 07 Jun 2024 10:41AM UTC
Jobs 1
Files 513
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

07 Jun 2024 10:30AM UTC coverage: 87.077% (-0.04%) from 87.119%
9415593681

push

github

locker
vinyl: fix crash in index drop if there is DML request reading from it

A DML request (insert, replace, update) can yield while reading from
the disk in order to check unique constraints. In the meantime the index
can be dropped. The DML request can't crash in this case thanks to
commit d3e1236956515 ("vinyl: abort affected transactions when space is
removed from cache"), but the DDL operation can because:
 - It unreferences the index in `alter_space_commit`, which may result
   in dropping the LSM tree with `vy_lsm_delete`.
 - `vy_lsm_delete` may yield in `vy_range_tree_free_cb` while waiting
   for disk readers to complete.
 - Yielding in commit triggers isn't allowed (crashes).

We already fixed a similar issue when `index.get` crashed if raced
with index drop, see commit 75f03a50df4a ("vinyl: fix crash if space is
dropped while space.get is reading from it"). Let's fix this issue in
the same way - by taking a reference to the LSM tree while checking
unique constraints. To do that it's enough to move `vy_lsm_ref` from
`vinyl_index_get` to `vy_get`.

Also, let's replace `vy_slice_wait_pinned` with an assertion checking
that the slice pin count is 0 in `vy_range_tree_free_cb` because
`vy_lsm_delete` must not yield.

Closes #10094

NO_DOC=bug fix

67653 of 120725 branches covered (56.04%)

8 of 10 new or added lines in 2 files covered. (80.0%)

73 existing lines in 19 files now uncovered.

100357 of 115251 relevant lines covered (87.08%)

2414077.31 hits per line

Jobs
ID Job ID Ran Files Coverage
1 9415593681.1 07 Jun 2024 10:41AM UTC 0
87.08
GitHub Action Run
Source Files on build 9415593681
Detailed source file information is not available for this build.
  • Back to Repo
  • bde28f0f on github
  • Prev Build on master (#9414454587)
  • Next Build on master (#9416809538)
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