diff options
-rw-r--r-- | mysql-test/include/mtr_warnings.sql | 6 | ||||
-rwxr-xr-x | mysql-test/mysql-test-run.pl | 6 | ||||
-rw-r--r-- | sql/slave.cc | 20 |
3 files changed, 27 insertions, 5 deletions
diff --git a/mysql-test/include/mtr_warnings.sql b/mysql-test/include/mtr_warnings.sql index 9d97d23897c..345968cd3f0 100644 --- a/mysql-test/include/mtr_warnings.sql +++ b/mysql-test/include/mtr_warnings.sql @@ -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")|| diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index d989479b6ea..03c3ac90c1f 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -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/, diff --git a/sql/slave.cc b/sql/slave.cc index 1e1edcbe7c9..2c4a3c541d4 100644 --- a/sql/slave.cc +++ b/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; |