mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-6188: master_retry_count (ignored if disconnect happens on SET master_heartbeat_period)
That particular part of slave connect to master was missing code to handle retry in case of network errors. The same problem is present in MySQL 5.5, but fixed in MySQL 5.6. Fixed with this patch, by adding the code (mostly identical to MySQL 5.6), and also adding a test case. I checked other queries done towards master during slave connect, and they now all seem to handle reconnect in case of network failures.
This commit is contained in:
25
mysql-test/suite/rpl/r/rpl_heartbeat_debug.result
Normal file
25
mysql-test/suite/rpl/r/rpl_heartbeat_debug.result
Normal file
@@ -0,0 +1,25 @@
|
||||
include/master-slave.inc
|
||||
[connection master]
|
||||
include/stop_slave.inc
|
||||
set @restore_slave_net_timeout= @@global.slave_net_timeout;
|
||||
set @@global.slave_net_timeout= 10;
|
||||
show status like 'Slave_heartbeat_period';;
|
||||
Variable_name Slave_heartbeat_period
|
||||
Value 60.000
|
||||
SET @save_dbug= @@GLOBAL.debug_dbug;
|
||||
SET GLOBAL debug_dbug="+d,simulate_slave_heartbeat_network_error";
|
||||
CALL mtr.add_suppression('SET @master_heartbeat_period to master failed with error');
|
||||
CALL mtr.add_suppression('Master command COM_REGISTER_SLAVE failed: failed registering on master, reconnecting to try again');
|
||||
include/start_slave.inc
|
||||
drop table if exists t1;
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES (1);
|
||||
SELECT * FROM t1;
|
||||
a
|
||||
1
|
||||
drop table t1;
|
||||
include/stop_slave.inc
|
||||
SET GLOBAL debug_dbug=@save_dbug;
|
||||
set @@global.slave_net_timeout= @restore_slave_net_timeout;
|
||||
include/start_slave.inc
|
||||
include/rpl_end.inc
|
Reference in New Issue
Block a user