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

MDEV-27849: rpl.rpl_start_alter_XXX fail sporadically in buildbot

The problem is that these tests run optimistic parallel replication with
non-transactional mysql.gtid_slave_pos table. Very occasionally InnoDB stats
update may race with one another and cause a parallel replication deadlock
kill after the mysql.gtid_slave_pos table has been updated. Since
mysql.gtid_slave_pos is non-transactional, the update cannot be rolled back,
and transaction retry will fail with a duplicate key error in
mysql.gtid_slave_pos.

Fixed by altering the storage engine to InnoDB for the table.

Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
This commit is contained in:
Kristian Nielsen
2023-12-11 14:29:04 +01:00
parent 917a7386bf
commit a016b18a58
20 changed files with 42 additions and 0 deletions

View File

@@ -49,6 +49,10 @@ connection server_2;
SET @save_binlog_alter_two_phase= @@GLOBAL.binlog_alter_two_phase;
SET GLOBAL binlog_alter_two_phase = ON;
connection server_3;
SET STATEMENT sql_log_bin=0 FOR
CALL mtr.add_suppression("The table mysql.gtid_slave_pos was removed. This change will not take full effect until all SQL threads have been restarted");
SET STATEMENT sql_log_bin=0 FOR
ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB;
SET @save_gtid_strict_mode= @@GLOBAL.gtid_strict_mode;
SET @slave_parallel_threads= @@GLOBAL.slave_parallel_threads;
SET @slave_parallel_mode= @@GLOBAL.slave_parallel_mode;