1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

MDEV-6403: Temporary tables lost at STOP SLAVE in GTID mode if master has not rotated binlog since restart

The binlog contains specially marked format description events to mark
when a master restart happened (which could have caused temporary
tables to be silently dropped). Such events also cause slave to close
temporary tables.

However, there was a bug that if after this, slave re-connects to the
master in GTID mode, the master can send an old format description
event again. If temporary tables are closed when such event is seen
for the second time, it might drop temporary tables created after that
event, and cause replication failure.

With this patch, the restart flag of the format description event is
cleared by the master when it is sent to the slave in a subsequent
connection, to avoid the errorneous temp table close.
This commit is contained in:
Kristian Nielsen
2015-03-04 13:10:37 +01:00
parent ad0d203f2e
commit 78c74dbe30
5 changed files with 126 additions and 0 deletions

View File

@@ -288,6 +288,7 @@ struct slave_connection_state
int to_string(String *out_str);
int append_to_string(String *out_str);
int get_gtid_list(rpl_gtid *gtid_list, uint32 list_size);
bool is_pos_reached();
};