diff options
author | Kristian Nielsen <knielsen@knielsen-hq.org> | 2015-09-11 10:51:56 +0200 |
---|---|---|
committer | Kristian Nielsen <knielsen@knielsen-hq.org> | 2015-09-11 10:51:56 +0200 |
commit | 51eaa7fe53eb017ffb3f4dc2f318cb0511b7cd26 (patch) | |
tree | 48a3c4a39f74607b083594e3de78e190dc10dd17 /sql/rpl_rli.cc | |
parent | 09bfaf3a13dabad936198633b968451c17d409b2 (diff) | |
download | mariadb-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.cc | 4 |
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); |