From 45eca6178eb92c88e7c8901c6a03390a7cf8442a Mon Sep 17 00:00:00 2001 From: Daniele Sciascia Date: Tue, 27 Mar 2018 14:29:43 +0200 Subject: [PATCH] MDEV-13549 Fix and re-enable MTR test galera.MW-284 The following changes are committed: * `RESET MASTER` at the end of the test. This was necessary to allow the test to run on repeated runs. * `--source include/galera_wait_ready.inc` after setting `gmcast.isolate=0` to get back to a primary component. * Fix for assertion in `Protocol::end_statement()`. The assertion is due to the fact that function `do_command()` calls `thd->protocol->end_statement()`, without setting an error, when it is detected that galera is not ready yet. Following line somehow disappeared in a past merge: ``` my_message(ER_UNKNOWN_COM_ERROR, "WSREP has not yet prepared node for application use", MYF(0)); ``` --- mysql-test/suite/galera/disabled.def | 1 - mysql-test/suite/galera/r/MW-284.result | 3 +++ mysql-test/suite/galera/t/MW-284.test | 9 ++++++++- sql/sql_parse.cc | 6 ++++-- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/mysql-test/suite/galera/disabled.def b/mysql-test/suite/galera/disabled.def index 5817776d5d9..76e6d588be3 100644 --- a/mysql-test/suite/galera/disabled.def +++ b/mysql-test/suite/galera/disabled.def @@ -40,7 +40,6 @@ galera_parallel_simple : MDEV-13549 Galera test failures galera_admin : MDEV-13549 Galera test failures galera_pc_ignore_sb : MDEV-13549 Galera test failures 10.1 galera_lock_table : MDEV-13549 Galera test failures 10.1 -MW-284 : MDEV-13549 Galera test failures 10.1 galera_gtid : MDEV-13549 Galera test failures 10.1 galera_unicode_identifiers : MDEV-13549 Galera test failures 10.1 galera.galera_gcs_fc_limit : MDEV-13549 Galera test failures 10.1 diff --git a/mysql-test/suite/galera/r/MW-284.result b/mysql-test/suite/galera/r/MW-284.result index 9d1c3e5660d..c9c0069889b 100644 --- a/mysql-test/suite/galera/r/MW-284.result +++ b/mysql-test/suite/galera/r/MW-284.result @@ -14,3 +14,6 @@ STOP SLAVE; RESET SLAVE ALL; CALL mtr.add_suppression('failed registering on master'); CALL mtr.add_suppression('You need to use --log-bin to make --binlog-format work'); +RESET MASTER; +CALL mtr.add_suppression('WSREP: Last Applied Action message in non-primary configuration from member'); +CALL mtr.add_suppression('WSREP: Last Applied Action message in non-primary configuration from member'); diff --git a/mysql-test/suite/galera/t/MW-284.test b/mysql-test/suite/galera/t/MW-284.test index 7add82f1227..5e17baa1bdb 100644 --- a/mysql-test/suite/galera/t/MW-284.test +++ b/mysql-test/suite/galera/t/MW-284.test @@ -24,7 +24,6 @@ SET global wsrep_sync_wait=0; --connection node_3 START SLAVE; ---sleep 1 --let $slave_param= Slave_IO_Running --let $slave_param_value= Connecting --source include/wait_for_slave_param.inc @@ -38,6 +37,7 @@ SET GLOBAL wsrep_provider_options='gmcast.isolate=0'; --source include/wait_for_slave_to_start.inc --connection node_1 +--source include/galera_wait_ready.inc INSERT INTO t1 VALUES (1); --connection node_3 @@ -61,3 +61,10 @@ RESET SLAVE ALL; CALL mtr.add_suppression('failed registering on master'); CALL mtr.add_suppression('You need to use --log-bin to make --binlog-format work'); + +--connection node_1 +RESET MASTER; +CALL mtr.add_suppression('WSREP: Last Applied Action message in non-primary configuration from member'); + +--connection node_2 +CALL mtr.add_suppression('WSREP: Last Applied Action message in non-primary configuration from member'); \ No newline at end of file diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 0c40c4852f6..cb432eb7ccd 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -1094,9 +1094,11 @@ bool do_command(THD *thd) Bail out if DB snapshot has not been installed. */ if (!thd->wsrep_applier && - (!wsrep_ready || wsrep_reject_queries != WSREP_REJECT_NONE) && - (server_command_flags[command] & CF_SKIP_WSREP_CHECK) == 0) + (!wsrep_ready || wsrep_reject_queries != WSREP_REJECT_NONE) && + (server_command_flags[command] & CF_SKIP_WSREP_CHECK) == 0) { + my_message(ER_UNKNOWN_COM_ERROR, + "WSREP has not yet prepared node for application use", MYF(0)); thd->protocol->end_statement(); /* Performance Schema Interface instrumentation end. */