From f71bed08caa6956fa3231900e70eaec6161ad33e Mon Sep 17 00:00:00 2001 From: Michael Widenius Date: Mon, 19 Jun 2017 06:37:43 +0300 Subject: [PATCH] Safety fix: lock binlog_end_pos before calling signal_update The mutex is needed to ensure that sql thread should not not miss the error signal. --- sql/rpl_parallel.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sql/rpl_parallel.cc b/sql/rpl_parallel.cc index 5797b82d8fe..b274824a33b 100644 --- a/sql/rpl_parallel.cc +++ b/sql/rpl_parallel.cc @@ -256,7 +256,9 @@ signal_error_to_sql_driver_thread(THD *thd, rpl_group_info *rgi, int err) rgi->rli->stop_for_until= false; mysql_mutex_lock(rgi->rli->relay_log.get_log_lock()); mysql_mutex_unlock(rgi->rli->relay_log.get_log_lock()); + rgi->rli->relay_log.lock_binlog_end_pos(); rgi->rli->relay_log.signal_update(); + rgi->rli->relay_log.unlock_binlog_end_pos(); }