[Tarantool-patches] [PATCH v2 2/3] Fix test box-tap/cfg.test.lua on openSuSE
Alexander V. Tikhonov
avtikhon at tarantool.org
Tue Jul 7 16:20:57 MSK 2020
Found that test fails on its subtest checking:
"gh-2872 bootstrap is aborted if vinyl_dir
contains vylog files left from previous runs"
Debugging src/box/xlog.c found that all checks
were correct, but at function:
src/box/vy_log.c:vy_log_bootstrap()
the check on of the errno on ENOENT blocked the
negative return from function:
src/box/xlog.c:xdir_scan()
Found that errno was already set to ENOENT before
the xdir_scan() call. To fix the issue the errno
must be clean before the call to xdir_scan, because
we are interesting in it only from this function.
The same issue fixed at function:
src/box/vy_log.c:vy_log_begin_recovery()
Closes #4594
Needed for #4562
---
src/box/vy_log.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/box/vy_log.c b/src/box/vy_log.c
index 311985c72..86599fd15 100644
--- a/src/box/vy_log.c
+++ b/src/box/vy_log.c
@@ -1014,6 +1014,7 @@ vy_log_rebootstrap(void)
int
vy_log_bootstrap(void)
{
+ errno = 0;
if (xdir_scan(&vy_log.dir) < 0 && errno != ENOENT)
return -1;
if (xdir_last_vclock(&vy_log.dir, &vy_log.last_checkpoint) >= 0)
@@ -1036,6 +1037,7 @@ vy_log_begin_recovery(const struct vclock *vclock)
* because vinyl might not be even in use. Complain only
* on an attempt to write a vylog.
*/
+ errno = 0;
if (xdir_scan(&vy_log.dir) < 0 && errno != ENOENT)
return NULL;
--
2.17.1
More information about the Tarantool-patches
mailing list