diff options
author | Igor Mazur <igor.mazur@grammarly.com> | 2017-11-11 22:32:39 +0200 |
---|---|---|
committer | Andrei Elkin <andrei.elkin@mariadb.com> | 2018-11-06 21:11:49 +0200 |
commit | 54b8856b87629e9fec075e3a71179eefc7fa02ac (patch) | |
tree | 35451763fcc4a7167d365d22f137e09e70f6457f /sql/slave.cc | |
parent | 7dfcb871079ce03c4ad0f6562f94b5a3cd0e1ecb (diff) | |
download | mariadb-git-54b8856b87629e9fec075e3a71179eefc7fa02ac.tar.gz |
MDEV-14528 Track master timestamp in case rolling back to serial replication
When replicated events are from Master unaware of MariaDB GTID their handling by
the Parallel slave misses Seconds_Behind_Master updating.
In the bug condition the Show-Slave-Status' field remains unchanged.
Because in such case event execution is sequential the bug
is fixed with deploying the same logics as in the explicit single-threaded mode
with is to set
Relay_log_event::last_master_timestamp
member early at the end of event reading from the relay log.
Diffstat (limited to 'sql/slave.cc')
-rw-r--r-- | sql/slave.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sql/slave.cc b/sql/slave.cc index 7e52822ca51..d6223453a5b 100644 --- a/sql/slave.cc +++ b/sql/slave.cc @@ -3960,6 +3960,11 @@ static int exec_relay_log_event(THD* thd, Relay_log_info* rli, This is the case for pre-10.0 events without GTID, and for handling slave_skip_counter. */ + if (!(ev->is_artificial_event() || ev->is_relay_log_event() || (ev->when == 0))) + { + rli->last_master_timestamp= ev->when + (time_t) ev->exec_time; + DBUG_ASSERT(rli->last_master_timestamp >= 0); + } } if (typ == GTID_EVENT) |