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

tarantool / tarantool / 22275
83%
master: 88%

Build:
Build:
LAST BUILD BRANCH: release/3.8
DEFAULT BRANCH: master
Ran 12 May 2020 05:36PM UTC
Jobs 1
Files 306
Run time 43s
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 03:52PM UTC coverage: 82.6% (+0.02%) from 82.581%
22275

push

travis-ci

Korablev77
vinyl: clean-up write iterator if vy_task_write_run() fails

In vy_task_write_run if write_iterator->start() fails, there's no call
of corresponding stop() method. vy_task_write_run() is executed in
auxiliary thread (dump or compaction). Meanwhile, creating/destroying
tuples in these threads does not change reference counter of corresponding
tuple formats (see vy_tuple_delete() and vy_stmt_alloc()).
Without cleaning up write iterator right in vy_task_write_run() after
fail, this procedure takes place in vy_task_compaction_abort() and
vy_task_dump_abort(). These *_abort() functions in turn are executed in
the main thread. Taking this into consideration, tuple may be allocated
in aux. thread and deleted in the main thread. As a result, format
reference counter decreases, whereas it shouldn't change (otherwise
tuple format will be destroyed before all tuples of this format are gone).

Real example of the bug described above can be achieved in the following
way:
1. run compaction process;
2. add one or more slice sources in vy_write_iterator_start():
corresponding slice_stream structures obtain newly created tuples
in vy_slice_stream_next();
3. the next call of vy_write_iterator_add_src() fails due to OOM,
invalid run file or whatever;
4. since there's no clean-up of tuples in slice streams, they are
destroyed in vy_task_compaction_abort() in the main thread exit;
5. now format reference counter is less than it was before compaction.

Closes #4864

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

41946 of 50782 relevant lines covered (82.6%)

908930.87 hits per line

Jobs
ID Job ID Ran Files Coverage
4 22275.4 (TARGET=coverage) 12 May 2020 05:36PM UTC 0
82.6
Travis Job 22275.4
Source Files on build 22275
Detailed source file information is not available for this build.
  • Back to Repo
  • Travis Build #22275
  • 47238222 on github
  • Prev Build on 1.10 (#22223)
  • Next Build on 1.10 (#22282)
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