Commit 5d2b85a2 authored by Kristian Nielsen's avatar Kristian Nielsen

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.
parent 60d094ae
...@@ -227,6 +227,12 @@ INSERT INTO global_suppressions VALUES ...@@ -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: 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 master-side filtering of @@skip_replication failed with error:.*"),
("Slave I/O: Setting @mariadb_slave_capability 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")|| ("THE_LAST_SUPPRESSION")||
......
...@@ -4839,6 +4839,12 @@ sub extract_warning_lines ($$) { ...@@ -4839,6 +4839,12 @@ sub extract_warning_lines ($$) {
qr/Slave I\/O: Get master clock failed with error:.*/, 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 COLLATION_SERVER failed with error:.*/,
qr/Slave I\/O: Get master TIME_ZONE 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\/O: error reconnecting to master '.*' - retry-time: [1-3] retries/,
qr/Slave I\/0: Master command COM_BINLOG_DUMP failed/, qr/Slave I\/0: Master command COM_BINLOG_DUMP failed/,
qr/Error reading packet/, qr/Error reading packet/,
......
...@@ -2004,11 +2004,21 @@ when it try to get the value of TIME_ZONE global variable from master."; ...@@ -2004,11 +2004,21 @@ when it try to get the value of TIME_ZONE global variable from master.";
!(master_row= mysql_fetch_row(master_res))) !(master_row= mysql_fetch_row(master_res)))
{ {
err_code= mysql_errno(mysql); err_code= mysql_errno(mysql);
errmsg= "The slave I/O thread stops because master does not support " if (is_network_error(err_code))
"MariaDB global transaction id. A fatal error is encountered when " {
"it tries to SELECT @@GLOBAL.gtid_domain_id."; mi->report(ERROR_LEVEL, err_code, NULL,
sprintf(err_buff, "%s Error: %s", errmsg, mysql_error(mysql)); "Get master @@GLOBAL.gtid_domain_id failed with error: %s",
goto err; 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); mysql_free_result(master_res);
master_res= NULL; master_res= NULL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment