mirror of
https://github.com/MariaDB/server.git
synced 2025-08-09 22:24:09 +03:00
MDEV-7975: sporadic failure in test case rpl.rpl_gtid_startpos
Add some suppressions that were missing. They are for if a STOP SLAVE is executed early during IO thread startup, when it is negotiating with the master. The master connection may be killed in the middle of a mysql_real_query(), which is not a test failure if it is a network error. This also caught one real code error, fixed with this commit: The I/O thread would fail to automatically reconnect if a network error happened while fetching the value of @@GLOBAL.gtid_domain_id.
This commit is contained in:
@@ -227,6 +227,12 @@ INSERT INTO global_suppressions VALUES
|
||||
("Slave I/O: Notifying master by SET @master_binlog_checksum= @@global.binlog_checksum failed with error.*"),
|
||||
("Slave I/O: Setting master-side filtering of @@skip_replication failed with error:.*"),
|
||||
("Slave I/O: Setting @mariadb_slave_capability failed with error:.*"),
|
||||
("Slave I/O: Get master @@GLOBAL.gtid_domain_id failed with error.*"),
|
||||
("Slave I/O: Setting @slave_connect_state failed with error.*"),
|
||||
("Slave I/O: Setting @slave_gtid_strict_mode failed with error.*"),
|
||||
("Slave I/O: Setting @slave_gtid_ignore_duplicates failed with error.*"),
|
||||
("Slave I/O: Setting @slave_until_gtid failed with error.*"),
|
||||
("Slave I/O: Get master GTID position failed with error.*"),
|
||||
("THE_LAST_SUPPRESSION")||
|
||||
|
||||
|
||||
|
@@ -4839,6 +4839,12 @@ sub extract_warning_lines ($$) {
|
||||
qr/Slave I\/O: Get master clock failed with error:.*/,
|
||||
qr/Slave I\/O: Get master COLLATION_SERVER failed with error:.*/,
|
||||
qr/Slave I\/O: Get master TIME_ZONE failed with error:.*/,
|
||||
qr/Slave I\/O: Get master \@\@GLOBAL.gtid_domain_id failed with error:.*/,
|
||||
qr/Slave I\/O: Setting \@slave_connect_state failed with error:.*/,
|
||||
qr/Slave I\/O: Setting \@slave_gtid_strict_mode failed with error:.*/,
|
||||
qr/Slave I\/O: Setting \@slave_gtid_ignore_duplicates failed with error:.*/,
|
||||
qr/Slave I\/O: Setting \@slave_until_gtid failed with error:.*/,
|
||||
qr/Slave I\/O: Get master GTID position failed with error:.*/,
|
||||
qr/Slave I\/O: error reconnecting to master '.*' - retry-time: [1-3] retries/,
|
||||
qr/Slave I\/0: Master command COM_BINLOG_DUMP failed/,
|
||||
qr/Error reading packet/,
|
||||
|
20
sql/slave.cc
20
sql/slave.cc
@@ -2004,11 +2004,21 @@ after_set_capability:
|
||||
!(master_row= mysql_fetch_row(master_res)))
|
||||
{
|
||||
err_code= mysql_errno(mysql);
|
||||
errmsg= "The slave I/O thread stops because master does not support "
|
||||
"MariaDB global transaction id. A fatal error is encountered when "
|
||||
"it tries to SELECT @@GLOBAL.gtid_domain_id.";
|
||||
sprintf(err_buff, "%s Error: %s", errmsg, mysql_error(mysql));
|
||||
goto err;
|
||||
if (is_network_error(err_code))
|
||||
{
|
||||
mi->report(ERROR_LEVEL, err_code, NULL,
|
||||
"Get master @@GLOBAL.gtid_domain_id failed with error: %s",
|
||||
mysql_error(mysql));
|
||||
goto network_err;
|
||||
}
|
||||
else
|
||||
{
|
||||
errmsg= "The slave I/O thread stops because master does not support "
|
||||
"MariaDB global transaction id. A fatal error is encountered when "
|
||||
"it tries to SELECT @@GLOBAL.gtid_domain_id.";
|
||||
sprintf(err_buff, "%s Error: %s", errmsg, mysql_error(mysql));
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
mysql_free_result(master_res);
|
||||
master_res= NULL;
|
||||
|
Reference in New Issue
Block a user