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

tarantool / tarantool / 10737840696
88%

Build:
DEFAULT BRANCH: master
Ran 06 Sep 2024 12:07PM UTC
Jobs 1
Files 514
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

06 Sep 2024 11:51AM UTC coverage: 87.228% (-0.007%) from 87.235%
10737840696

push

github

locker
vinyl: handle error loading statement from disk during key lookup

`vy_page_stmt()` may fail (return NULL) if:
 - the statement is corrupted;
 - memory allocation for the statement fails;
 - the statement size exceeds `box.cfg.vinyl_max_tuple_size`.

If this happens `vy_page_find_key()` won't return an error. Instead,
it'll either point the caller to a wrong statement or claim that there's
no statement matching the key in this page. This may result in invalid
index selection results and, later on, a crash caused by inconsistencies
in the tuple cache. The issue was introduced by commit ac8ce0233a00
("vinyl: factor out function to lookup key in page").

All of the three cases are actually very unlikely to happen in
production:
 - If a statement stored in a run file is corrupted, we'll probably fail
   to load the whole page due to failed checksums and never even get to
   `vy_page_stmt()`.
 - Statements are allocated with `malloc()`, which doesn't normally
   fail (instead the whole process would be terminated by OOM) .
 - Users don't tend to lower the tuple size limit after restart.

Still, let's fix the issue by implementing proper error handling for
`vy_page_find_key()`.

Closes #10512

NO_DOC=bug fix

68690 of 122142 branches covered (56.24%)

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

56 existing lines in 20 files now uncovered.

101441 of 116294 relevant lines covered (87.23%)

2479077.66 hits per line

Jobs
ID Job ID Ran Files Coverage
1 10737840696.1 06 Sep 2024 12:07PM UTC 0
87.23
GitHub Action Run
Source Files on build 10737840696
Detailed source file information is not available for this build.
  • Back to Repo
  • 9dbaa6a9 on github
  • Prev Build on master (#10737376507)
  • Next Build on master (#10768952750)
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