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

tarantool / tarantool / 13459320015
88%

Build:
DEFAULT BRANCH: master
Ran 21 Feb 2025 03:15PM UTC
Jobs 1
Files 518
Run time 2min
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

21 Feb 2025 02:54PM UTC coverage: 87.434% (-0.02%) from 87.455%
13459320015

push

github

locker
vinyl: fix race between manual compaction and range splitting

To force compaction, index:compact() sets the needs_compaction flag
on all ranges of the target LSM tree. When a range is split, the new
ranges inherit this flag. The problem is that there's a yield caused by
vy_log_tx_commit() between setting the flag in vy_lsm_split_range() and
adding the new ranges to the LSM tree. If vinyl_index_compact() is
called while vy_lsm_split_range() is waiting for vy_log_tx_commit() to
complete, the needs_compaction flag will be set for the old range but
not for the new ranges hence compaction won't be triggered for them.
This breaks assumptions made by some tests (select_consistency_test,
for example).

Fix this issue by setting the needs_compaction flag right before
modifying the LSM tree, after the vylog record is committed.

Note that vy_lsm_coalesce_range() isn't affected because it already
sets the flag after the vylog write.

Closes #11019

NO_DOC=bug fix
NO_TEST=checked by existing tests; difficult to reproduce
NO_CHANGELOG=minor issue; unlikely to happen; no adverse effects;
             easy to work around (just call index:compact() again)

69835 of 123363 branches covered (56.61%)

3 of 3 new or added lines in 1 file covered. (100.0%)

53 existing lines in 15 files now uncovered.

102947 of 117742 relevant lines covered (87.43%)

2207962.49 hits per line

Uncovered Existing Lines

Lines Coverage ∆ File
1
96.12
-0.18% src/box/relay.cc
1
93.53
-0.14% src/box/txn_limbo.c
1
88.05
-0.16% src/box/vy_lsm.c
1
87.5
-1.59% src/box/xlog.h
1
60.42
-0.42% src/lib/core/fio.c
2
95.84
-0.11% src/box/iproto.cc
2
87.3
-0.13% src/box/vy_run.c
2
94.66
-0.37% src/box/xrow_update_field.c
2
85.15
-0.27% src/lib/core/say.c
2
85.71
-9.52% src/lib/core/tt_sigaction.c
3
92.94
-0.29% src/lib/core/fiber.c
4
84.34
-0.38% src/box/xlog.c
7
92.43
-0.27% src/box/vinyl.c
7
95.03
-1.45% src/box/vy_read_iterator.c
17
90.91
-0.45% src/box/box.cc
Jobs
ID Job ID Ran Files Coverage
1 13459320015.1 21 Feb 2025 03:15PM UTC 518
87.43
GitHub Action Run
Source Files on build 13459320015
  • Tree
  • List 518
  • Changed 448
  • Source Changed 0
  • Coverage Changed 25
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 501ef616 on github
  • Prev Build on master (#13436472515)
  • Next Build on master (#13505815328)
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