mirror of
https://github.com/MariaDB/server.git
synced 2025-05-07 04:01:59 +03:00
There was a race, a small window between updating slave position and updating Seconds_Behind_Master, during which the test case could see the wrong value. Fix by waiting for the expected status to appear.
49 lines
1.6 KiB
Plaintext
49 lines
1.6 KiB
Plaintext
--source include/have_binlog_format_statement.inc
|
|
--let $rpl_topology=1->2
|
|
--source include/rpl_init.inc
|
|
|
|
--echo *** MDEV-5509: Incorrect value for Seconds_Behind_Master if parallel replication ***
|
|
|
|
--connection server_2
|
|
SET @old_parallel_threads=@@GLOBAL.slave_parallel_threads;
|
|
--source include/stop_slave.inc
|
|
SET GLOBAL slave_parallel_threads=5;
|
|
--source include/start_slave.inc
|
|
|
|
--connection server_1
|
|
CREATE TABLE t1 (a INT PRIMARY KEY, b INT);
|
|
CALL mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave");
|
|
--save_master_pos
|
|
|
|
--connection server_2
|
|
--sync_with_master
|
|
|
|
--connection server_1
|
|
INSERT INTO t1 VALUES (1,sleep(2));
|
|
--save_master_pos
|
|
|
|
--connection server_2
|
|
--sync_with_master
|
|
|
|
# The slave position (which --sync_with_master waits for) is updated just
|
|
# before the Seconds_Behind_Master. So we have to wait for the zero status
|
|
# to appear, otherwise there is a small window between --sync_with_master
|
|
# and SHOW SLAVE STATUS where we can see a non-zero value.
|
|
--let $slave_param= Seconds_Behind_Master
|
|
--let $slave_param_value= 0
|
|
--source include/wait_for_slave_param.inc
|
|
--echo Seconds_Behind_Master should be zero here because the slave is fully caught up and idle.
|
|
--let $status_items= Seconds_Behind_Master
|
|
--source include/show_slave_status.inc
|
|
|
|
|
|
--connection server_2
|
|
--source include/stop_slave.inc
|
|
SET GLOBAL slave_parallel_threads=@old_parallel_threads;
|
|
--source include/start_slave.inc
|
|
|
|
--connection server_1
|
|
DROP TABLE t1;
|
|
|
|
--source include/rpl_end.inc
|