summaryrefslogtreecommitdiff
path: root/sql/rpl_rli.h
diff options
context:
space:
mode:
authorunknown <knielsen@knielsen-hq.org>2014-03-03 12:13:55 +0100
committerunknown <knielsen@knielsen-hq.org>2014-03-03 12:13:55 +0100
commit641feed481800d9baadc492a293723da274d8ed6 (patch)
tree780c8e7a63d39a1573c17075ecee423714d38fb0 /sql/rpl_rli.h
parente90f68c0ba1802d58b06bc7178513f77b27b662b (diff)
downloadmariadb-git-641feed481800d9baadc492a293723da274d8ed6.tar.gz
MDEV-5764: START SLAVE UNTIL does not work with parallel replication
With parallel replication, there can be any number of events queued on in-memory lists in the worker threads. For normal STOP SLAVE, we want to skip executing any remaining events on those lists and stop as quickly as possible. However, for START SLAVE UNTIL, when the UNTIL position is reached in the SQL driver thread, we must _not_ stop until all already queued events for the workers have been executed - otherwise we would stop too early, before the actual UNTIL position had been completely reached. The code did not handle UNTIL correctly, stopping too early due to not executing the queued events to completion. Fix this, and also implement that an explicit STOP SLAVE in the middle (when the SQL driver thread has reached the UNTIL position but the workers have not) _will_ cause an immediate stop.
Diffstat (limited to 'sql/rpl_rli.h')
-rw-r--r--sql/rpl_rli.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sql/rpl_rli.h b/sql/rpl_rli.h
index 0ba259b0efd..6db4ce5d61b 100644
--- a/sql/rpl_rli.h
+++ b/sql/rpl_rli.h
@@ -262,6 +262,7 @@ public:
*/
volatile bool inited;
volatile bool abort_slave;
+ volatile bool stop_for_until;
volatile uint slave_running;
/*