mirror of
https://github.com/MariaDB/server.git
synced 2025-01-27 17:33:44 +01:00
8fcc0bfefa
The problem was that wait_for_slave_io_to_start reported that the io thread was ready, when it was still initializing. This caused test suite to continue too early, for example before the semi sync plugin was properly enabled. Fixed by introducing a new internal stage: "Preparing". Slave_IO_Running is now set to "Yes" only when all initializing is done and the IO thread is ready to read things from the master. The only test affected by this change is rpl_flsh_tbls, which got stuck in the preparing phase while trying to read the GTID position from a table. Fixed by having this test waiting for Preparing instead of Yes.
31 lines
947 B
Text
31 lines
947 B
Text
include/master-slave.inc
|
|
[connection master]
|
|
create table t1 (a int) ENGINE=MyISAM;
|
|
insert into t1 values (10);
|
|
create table t2 (a int) ENGINE=MyISAM;
|
|
create table t3 (a int) engine=merge union(t1);
|
|
create table t4 (a int);
|
|
insert into t4 select * from t3;
|
|
rename table t1 to t5, t2 to t1;
|
|
flush no_write_to_binlog tables;
|
|
include/show_binlog_events.inc
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 # Gtid # # GTID #-#-#
|
|
master-bin.000001 # Query # # use `test`; rename table t1 to t5, t2 to t1
|
|
select * from t3;
|
|
a
|
|
flush tables;
|
|
select * from t3;
|
|
a
|
|
stop slave;
|
|
include/wait_for_slave_to_stop.inc
|
|
drop table t1;
|
|
flush tables with read lock;
|
|
start slave;
|
|
include/wait_for_slave_param.inc [Slave_IO_Running]
|
|
include/wait_for_slave_sql_to_start.inc
|
|
stop slave;
|
|
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
|
|
unlock tables;
|
|
drop table t3, t4, t5;
|
|
include/rpl_end.inc
|