diff options
author | Kristian Nielsen <knielsen@knielsen-hq.org> | 2016-10-14 12:22:00 +0200 |
---|---|---|
committer | Kristian Nielsen <knielsen@knielsen-hq.org> | 2016-10-14 23:15:59 +0200 |
commit | 3011060b2ab8b56a5c1c69695de6041b80a663b7 (patch) | |
tree | a82b5321d727ff31d07cda383d1d930fd43f3d31 /sql/rpl_parallel.cc | |
parent | 09136ec30484deb97db548ca2b079b9e26cef8cf (diff) | |
download | mariadb-git-3011060b2ab8b56a5c1c69695de6041b80a663b7.tar.gz |
MDEV-7145: Delayed slave.
Extend to work also for parallel replication.
Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
Diffstat (limited to 'sql/rpl_parallel.cc')
-rw-r--r-- | sql/rpl_parallel.cc | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/sql/rpl_parallel.cc b/sql/rpl_parallel.cc index c507a132374..cbba2e6662e 100644 --- a/sql/rpl_parallel.cc +++ b/sql/rpl_parallel.cc @@ -2418,8 +2418,17 @@ rpl_parallel::do_event(rpl_group_info *serial_rgi, Log_event *ev, !(unlikely(rli->gtid_skip_flag != GTID_SKIP_NOT) && is_group_event)) return -1; - /* ToDo: what to do with this lock?!? */ - mysql_mutex_unlock(&rli->data_lock); + /* Note: rli->data_lock is released by sql_delay_event(). */ + if (sql_delay_event(ev, rli->sql_driver_thd, serial_rgi)) + { + /* + If sql_delay_event() returns non-zero, it means that the wait timed out + due to slave stop. We should not queue the event in this case, it must + not be applied yet. + */ + delete ev; + return 1; + } if (unlikely(typ == FORMAT_DESCRIPTION_EVENT)) { |