mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Merge 10.3 into 10.4
Disable MDEV-20576 assertions until MDEV-20595 has been fixed.
This commit is contained in:
40
mysql-test/suite/rpl/r/rpl_semi_sync_slave_reply_fail.result
Normal file
40
mysql-test/suite/rpl/r/rpl_semi_sync_slave_reply_fail.result
Normal file
@@ -0,0 +1,40 @@
|
||||
include/master-slave.inc
|
||||
[connection master]
|
||||
connection slave;
|
||||
include/stop_slave.inc
|
||||
connection master;
|
||||
call mtr.add_suppression("Timeout waiting for reply of binlog*");
|
||||
set global rpl_semi_sync_master_enabled = ON;
|
||||
SET @@GLOBAL.rpl_semi_sync_master_timeout=100;
|
||||
create table t1 (i int);
|
||||
connection slave;
|
||||
set global rpl_semi_sync_slave_enabled = ON;
|
||||
CALL mtr.add_suppression("Semi-sync slave net_flush*");
|
||||
SET @save_debug= @@global.debug;
|
||||
SET GLOBAL debug_dbug="+d,semislave_failed_net_flush";
|
||||
include/start_slave.inc
|
||||
connection master;
|
||||
connection slave;
|
||||
"Assert that the net_fulsh() reply failed is present in slave error log.
|
||||
FOUND 1 /Semi-sync slave net_flush\(\) reply failed/ in mysqld.2.err
|
||||
"Assert that Slave IO thread is up and running."
|
||||
SHOW STATUS LIKE 'Slave_running';
|
||||
Variable_name Value
|
||||
Slave_running ON
|
||||
Slave_IO_Running= Yes
|
||||
"Clear the network failure simulation."
|
||||
SET GLOBAL debug_dbug= @save_debug;
|
||||
connection master;
|
||||
insert into t1 values (10);
|
||||
connection slave;
|
||||
connection slave;
|
||||
# Compare the tables on master and slave.
|
||||
include/diff_tables.inc [master:t1, slave:t1]
|
||||
connection master;
|
||||
drop table t1;
|
||||
connection slave;
|
||||
set global rpl_semi_sync_slave_enabled = OFF;
|
||||
connection master;
|
||||
set global rpl_semi_sync_master_enabled = OFF;
|
||||
SET @@GLOBAL.rpl_semi_sync_master_timeout = 10000;
|
||||
include/rpl_end.inc
|
87
mysql-test/suite/rpl/t/rpl_semi_sync_slave_reply_fail.test
Normal file
87
mysql-test/suite/rpl/t/rpl_semi_sync_slave_reply_fail.test
Normal file
@@ -0,0 +1,87 @@
|
||||
# ==== Purpose ====
|
||||
#
|
||||
# Test verifies that slave IO thread doesn't report an error, when slave fails
|
||||
# to send an acknowledgment to master with semi sync replication in use.
|
||||
#
|
||||
# ==== Implementation ====
|
||||
#
|
||||
# Steps:
|
||||
# 0 - Have semi synchronous replication in use.
|
||||
# 1 - Enable a debug simulation point which simulates network flush failure
|
||||
# at the time of slave reply operation.
|
||||
# 2 - Do some operation on master and wait for it to be replicated. Master
|
||||
# will timeout waiting for reply from slave.
|
||||
# 3 - Check the slave error log for appropriate error message regarding
|
||||
# net_flush operation failure.
|
||||
# 4 - Remove the debug simulation and do some more DML operations on master
|
||||
# and wait for them to be replicated.
|
||||
# 5 - Slave will be able to replicate and data is consistent on both master
|
||||
# and slave. Semi sync will be automatically turned on.
|
||||
#
|
||||
# ==== References ====
|
||||
#
|
||||
# MDEV-20217: Semi_sync: Last_IO_Error: Fatal error: Failed to run
|
||||
# 'after_queue_event' hook
|
||||
#
|
||||
--source include/have_debug.inc
|
||||
--source include/master-slave.inc
|
||||
|
||||
--connection slave
|
||||
--source include/stop_slave.inc
|
||||
|
||||
--connection master
|
||||
call mtr.add_suppression("Timeout waiting for reply of binlog*");
|
||||
--let $sav_timeout_master=`SELECT @@GLOBAL.rpl_semi_sync_master_timeout`
|
||||
set global rpl_semi_sync_master_enabled = ON;
|
||||
SET @@GLOBAL.rpl_semi_sync_master_timeout=100;
|
||||
create table t1 (i int);
|
||||
|
||||
--connection slave
|
||||
set global rpl_semi_sync_slave_enabled = ON;
|
||||
CALL mtr.add_suppression("Semi-sync slave net_flush*");
|
||||
SET @save_debug= @@global.debug;
|
||||
SET GLOBAL debug_dbug="+d,semislave_failed_net_flush";
|
||||
--source include/start_slave.inc
|
||||
|
||||
--connection master
|
||||
--sync_slave_with_master
|
||||
|
||||
# Check error log for correct messages.
|
||||
let $log_error_= `SELECT @@GLOBAL.log_error`;
|
||||
if(!$log_error_)
|
||||
{
|
||||
# MySQL Server on windows is started with --console and thus
|
||||
# does not know the location of its .err log, use default location
|
||||
let $log_error_ = $MYSQLTEST_VARDIR/log/mysqld.2.err;
|
||||
}
|
||||
--echo "Assert that the net_fulsh() reply failed is present in slave error log.
|
||||
--let SEARCH_FILE=$log_error_
|
||||
--let SEARCH_PATTERN=Semi-sync slave net_flush\(\) reply failed
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--echo "Assert that Slave IO thread is up and running."
|
||||
SHOW STATUS LIKE 'Slave_running';
|
||||
let $status= query_get_value("show slave status", Slave_IO_Running, 1);
|
||||
echo Slave_IO_Running= $status;
|
||||
|
||||
--echo "Clear the network failure simulation."
|
||||
SET GLOBAL debug_dbug= @save_debug;
|
||||
|
||||
--connection master
|
||||
insert into t1 values (10);
|
||||
--sync_slave_with_master
|
||||
|
||||
--connection slave
|
||||
--echo # Compare the tables on master and slave.
|
||||
--let $diff_tables= master:t1, slave:t1
|
||||
--source include/diff_tables.inc
|
||||
|
||||
--connection master
|
||||
drop table t1;
|
||||
--sync_slave_with_master
|
||||
set global rpl_semi_sync_slave_enabled = OFF;
|
||||
|
||||
--connection master
|
||||
set global rpl_semi_sync_master_enabled = OFF;
|
||||
--eval SET @@GLOBAL.rpl_semi_sync_master_timeout = $sav_timeout_master
|
||||
--source include/rpl_end.inc
|
Reference in New Issue
Block a user