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

tarantool / tarantool / 24066
83%
master: 88%

Build:
Build:
LAST BUILD BRANCH: recovery-point-manager-prepare
DEFAULT BRANCH: master
Ran 31 Aug 2020 10:12AM UTC
Jobs 1
Files 306
Run time 18s
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

31 Aug 2020 09:50AM UTC coverage: 82.716% (+0.02%) from 82.693%
24066

push

travis-ci

kyukhin
vinyl: fix check vinyl_dir existence at bootstrap

During implementation of openSUSE build with testing got failed test
box-tap/cfg.test.lua. Found that when memtx_dir didn't exist and
vinyl_dir existed and also errno was set to ENOENT, box configuration
succeeded, but it shouldn't. Reason of this wrong behavior was that
not all of the failure paths in xdir_scan() set errno, but the caller
assumed it.

Debugging the issue found that after xdir_scan() there was incorrect
check for errno when it returned negative values. xdir_scan() is not
system call and negative return value from it doesn't mean that errno
would be set too. Found that in situations when errno was left from
previous commands before xdir_scan() and xdir_scan() returned negative
value by itself it produced the wrong check.

The previous failed logic of the check was to catch the error ENOENT
which set in the xdir_scan() function to handle the situation when
vinyl_dir was not exist. It failed, because checking ENOENT outside
the xdir_scan() function, we had to be sure that ENOENT had come from
xdir_scan() function call indeed and not from any other functions
before. To be sure in it possible fix could be reset errno before
xdir_scan() call, because errno could be passed from any other function
before call to xdir_scan().

As mentioned above xdir_scan() function is not system call and can be
changed in any possible way and it can return any result value without
need to setup errno. So check outside of this function on errno could
be broken.

To avoid that we must not check errno after call of the function.
Better solution is to use the flag in xdir_scan(), to check if the
directory should exist. So errno check was removed and instead of it
the check for vinyl_dir existence using flag added.

Closes #4594
Needed for #4562

Co-authored-by: Alexander Turenko <alexander.turenko@tarantool.org>
(cherry picked from commit 43c776a66)

42118 of 50919 relevant lines covered (82.72%)

967152.12 hits per line

Jobs
ID Job ID Ran Files Coverage
3 24066.3 (TARGET=coverage) 31 Aug 2020 10:12AM UTC 0
82.72
Travis Job 24066.3
Source Files on build 24066
Detailed source file information is not available for this build.
  • Back to Repo
  • Travis Build #24066
  • ec039dd6 on github
  • Prev Build on 1.10 (#23986)
  • Next Build on 1.10 (#24075)
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