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

tarantool / tarantool / 22282
83%
master: 88%

Build:
Build:
LAST BUILD BRANCH: wal_sync_before_cfg_v2
DEFAULT BRANCH: master
Ran 13 May 2020 12:20AM UTC
Jobs 1
Files 306
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

12 May 2020 10:37PM UTC coverage: 82.649% (+0.05%) from 82.6%
22282

push

travis-ci

Korablev77
vinyl: drop wasted runs in case range recovery fails

If recovery process fails during range restoration, range itself is
deleted and recovery is assumed to be finished as failed (in case of
casual i.e. not forced recovery). During recovery of particular range,
runs to be restored are refed twice: once when they are created at
vy_run_new() and once when they are attached to slice. This fact is
taken into consideration and after all ranges are recovered: all runs of
lsm tree are unrefed so that slices own run resources (as a result, when
slice is to be deleted its runs unrefed and deleted as well). However, if
range recovery fails, range is dropped alongside with already recovered
slices. This leads to unrefing runs - this is not accounted. To sum up
recovery process below is a brief schema:

foreach range in lsm.ranges {
  vy_lsm_recover_range(range) {
    foreach slice in range.slices {
      // inside recover_slice() each run is refed twice
      if vy_lsm_recover_slice() != 0 {
        // here all already restored slices are deleted and
        // corresponding runs are unrefed, so now they have 1 ref.
        range_delete()
      }
    }
  }
}
foreach run in lsm.runs {
  assert(run->refs > 1)
  vy_run_unref(run)
}

In this case, unrefing such runs one more time would lead to their
destruction. On the other hand, iteration over runs may turn out to
be unsafe, so we should use rlist_foreach_entry_safe(). Moreover, we
should explicitly clean-up these runs calling vy_lsm_remove_run().

Reviewed-by: Vladislav Shpilevoy <vshpilevoi@mail.ru>

Closes #4805

(cherry picked from commit 32f59756a)

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

41974 of 50786 relevant lines covered (82.65%)

934818.49 hits per line

Jobs
ID Job ID Ran Files Coverage
4 22282.4 (TARGET=coverage) 13 May 2020 12:20AM UTC 0
82.65
Travis Job 22282.4
Source Files on build 22282
Detailed source file information is not available for this build.
  • Back to Repo
  • Travis Build #22282
  • 9b0611d5 on github
  • Prev Build on 1.10 (#22275)
  • Next Build on 1.10 (#22326)
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