summaryrefslogtreecommitdiff
path: root/sql/rpl_rli.cc
diff options
context:
space:
mode:
authorKristian Nielsen <knielsen@knielsen-hq.org>2015-09-11 10:51:56 +0200
committerKristian Nielsen <knielsen@knielsen-hq.org>2015-09-11 10:51:56 +0200
commit51eaa7fe53eb017ffb3f4dc2f318cb0511b7cd26 (patch)
tree48a3c4a39f74607b083594e3de78e190dc10dd17 /sql/rpl_rli.cc
parent09bfaf3a13dabad936198633b968451c17d409b2 (diff)
downloadmariadb-git-51eaa7fe53eb017ffb3f4dc2f318cb0511b7cd26.tar.gz
MDEV-8193: UNTIL clause in START SLAVE is sporadically disobeyed by parallel replication
The code was using the wrong variable when comparing the binlog name for the UNTIL position. This could cause the comparison to fail after binlog rotation, in turn causing the UNTIL clause to not trigger slave stop.
Diffstat (limited to 'sql/rpl_rli.cc')
-rw-r--r--sql/rpl_rli.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/sql/rpl_rli.cc b/sql/rpl_rli.cc
index 9bd0ca55b01..e74088090f9 100644
--- a/sql/rpl_rli.cc
+++ b/sql/rpl_rli.cc
@@ -996,7 +996,6 @@ void Relay_log_info::inc_group_relay_log_pos(ulonglong log_pos,
if (cmp < 0)
{
strcpy(group_master_log_name, rgi->future_event_master_log_name);
- notify_group_master_log_name_update();
group_master_log_pos= log_pos;
}
else if (group_master_log_pos < log_pos)
@@ -1218,7 +1217,8 @@ bool Relay_log_info::is_until_satisfied(THD *thd, Log_event *ev)
if (ev && ev->server_id == (uint32) global_system_variables.server_id &&
!replicate_same_server_id)
DBUG_RETURN(FALSE);
- log_name= group_master_log_name;
+ log_name= (opt_slave_parallel_threads > 0 ?
+ future_event_master_log_name : group_master_log_name);
log_pos= ((!ev)? group_master_log_pos :
(get_flag(IN_TRANSACTION) || !ev->log_pos) ?
group_master_log_pos : ev->log_pos - ev->data_written);