From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Serge Petrenko Subject: [PATCH] replication: fix exit with ER_NO_SUCH_USER during bootstrap Date: Thu, 23 Aug 2018 15:57:43 +0300 Message-Id: <20180823125743.56072-1-sergepetrenko@tarantool.org> To: vdavydov.dev@gmail.com Cc: tarantool-patches@freelists.org, Serge Petrenko List-ID: When replication is configured via some user created in box.once() function and box.once() takes more than replication_timeout seconds to execute, appliers recieve ER_NO_SUCH_USER error, which they don't handle. This leads to occasional test failures in replication suite. Fix this by handling the aforementioned case in applier_f(). Closes #3637 --- https://github.com/tarantool/tarantool/issues/3637 https://github.com/tarantool/tarantool/tree/sp/gh-3637-replication-tests-fix src/box/applier.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/box/applier.cc b/src/box/applier.cc index dbb4d05f9..740778e80 100644 --- a/src/box/applier.cc +++ b/src/box/applier.cc @@ -607,6 +607,14 @@ applier_f(va_list ap) applier_log_error(applier, e); applier_disconnect(applier, APPLIER_DISCONNECTED); goto reconnect; + } else if (e->errcode() == ER_NO_SUCH_USER) { + /* + * Probably box.once() hasn't finished + * on bootstrap leader yet. + */ + applier_log_error(applier, e); + applier_disconnect(applier, APPLIER_DISCONNECTED); + goto reconnect; } else if (e->errcode() == ER_SYSTEM) { /* System error from master instance. */ applier_log_error(applier, e); -- 2.15.2 (Apple Git-101.1)