From: Sergey Bronnikov <sergeyb@tarantool.org> To: tarantool-patches@dev.tarantool.org Cc: Oleg Piskunov <o.piskunov@tarantool.org> Subject: [Tarantool-patches] [PATCH] Add new error injection constant ERRINJ_AUTO_UPGRADE Date: Mon, 30 Mar 2020 13:13:24 +0300 [thread overview] Message-ID: <20200330101324.GA31497@pony.bronevichok.ru> (raw) In upgrade testing we need an ability to control running of upgrade.lua script execution. When constant ERRINJ_AUTO_UPGRADE is set to true tarantool will skip upgrade.lua script execution. Ticket: https://github.com/tarantool/tarantool/issues/4801 GitHub branch: https://github.com/tarantool/tarantool/tree/ligurio/gh-4801-errinj_auto_upgrade --- src/box/lua/init.c | 2 ++ src/box/lua/init.h | 2 ++ src/box/lua/load_cfg.lua | 2 +- src/lib/core/errinj.h | 1 + test/box/errinj.result | 4 +++- test/box/errinj.test.lua | 4 +++- 6 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/box/lua/init.c b/src/box/lua/init.c index 63e8b8216..fc26ad175 100644 --- a/src/box/lua/init.c +++ b/src/box/lua/init.c @@ -34,6 +34,8 @@ #include <lauxlib.h> #include <lualib.h> +#include "errinj.h" + #include "lua/utils.h" /* luaT_error() */ #include "lua/trigger.h" diff --git a/src/box/lua/init.h b/src/box/lua/init.h index 66ef66063..65f9aea8f 100644 --- a/src/box/lua/init.h +++ b/src/box/lua/init.h @@ -31,6 +31,8 @@ * SUCH DAMAGE. */ +#include <stdbool.h> + #if defined(__cplusplus) extern "C" { #endif /* defined(__cplusplus) */ diff --git a/src/box/lua/load_cfg.lua b/src/box/lua/load_cfg.lua index b671eb7a2..394a00168 100644 --- a/src/box/lua/load_cfg.lua +++ b/src/box/lua/load_cfg.lua @@ -571,7 +571,7 @@ local function load_cfg(cfg) end end end - if not box.cfg.read_only and not box.cfg.replication then + if box.error.injection.get('ERRINJ_AUTO_UPGRADE') or (not box.cfg.read_only and not box.cfg.replication) then box.schema.upgrade{auto = true} end end diff --git a/src/lib/core/errinj.h b/src/lib/core/errinj.h index ee6c57a0d..7eaa1ac48 100644 --- a/src/lib/core/errinj.h +++ b/src/lib/core/errinj.h @@ -139,6 +139,7 @@ struct errinj { _(ERRINJ_FIBER_MPROTECT, ERRINJ_INT, {.iparam = -1}) \ _(ERRINJ_RELAY_FASTER_THAN_TX, ERRINJ_BOOL, {.bparam = false}) \ _(ERRINJ_INDEX_RESERVE, ERRINJ_BOOL, {.bparam = false})\ + _(ERRINJ_AUTO_UPGRADE, ERRINJ_BOOL, {.bparam = false})\ ENUM0(errinj_id, ERRINJ_LIST); extern struct errinj errinjs[]; diff --git a/test/box/errinj.result b/test/box/errinj.result index 0d3fedeb3..d4584022a 100644 --- a/test/box/errinj.result +++ b/test/box/errinj.result @@ -29,7 +29,9 @@ evals = {} --- ... for k, v in pairs(errinj.info()) do \ - table.insert(ekeys, k) \ + if not (k == "ERRINJ_AUTO_UPGRADE") then \ + table.insert(ekeys, k) \ + end \ end --- ... diff --git a/test/box/errinj.test.lua b/test/box/errinj.test.lua index 5d8f4c635..a6d4eecd4 100644 --- a/test/box/errinj.test.lua +++ b/test/box/errinj.test.lua @@ -15,7 +15,9 @@ index = space:create_index('primary', { type = 'hash' }) ekeys = {} evals = {} for k, v in pairs(errinj.info()) do \ - table.insert(ekeys, k) \ + if not (k == "ERRINJ_AUTO_UPGRADE") then \ + table.insert(ekeys, k) \ + end \ end table.sort(ekeys) for i, k in ipairs(ekeys) do \ -- 2.23.0 -- sergeyb@
next reply other threads:[~2020-03-30 10:13 UTC|newest] Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-03-30 10:13 Sergey Bronnikov [this message] 2020-03-30 13:11 ` Sergey Bronnikov 2020-05-15 17:14 ` Alexander Turenko 2020-05-18 15:05 ` Sergey Bronnikov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200330101324.GA31497@pony.bronevichok.ru \ --to=sergeyb@tarantool.org \ --cc=o.piskunov@tarantool.org \ --cc=tarantool-patches@dev.tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH] Add new error injection constant ERRINJ_AUTO_UPGRADE' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox