[PATCH] replication: fix exit with ER_NO_SUCH_USER during bootstrap
Serge Petrenko
sergepetrenko at tarantool.org
Thu Aug 23 15:57:43 MSK 2018
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)
More information about the Tarantool-patches
mailing list