diff options
Diffstat (limited to 'mysql-test/suite/galera_3nodes/t/galera-features#119.test')
-rw-r--r-- | mysql-test/suite/galera_3nodes/t/galera-features#119.test | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/mysql-test/suite/galera_3nodes/t/galera-features#119.test b/mysql-test/suite/galera_3nodes/t/galera-features#119.test new file mode 100644 index 00000000..d1dd435c --- /dev/null +++ b/mysql-test/suite/galera_3nodes/t/galera-features#119.test @@ -0,0 +1,72 @@ +# +# This test tests voting (successful slave wins) in the absence of the master +# for trasaction. +# +--source include/galera_cluster.inc +--source include/have_innodb.inc + +--let $galera_connection_name = node_3 +--let $galera_server_number = 3 +--source include/galera_connect.inc + +# Save original auto_increment_offset values. +--let $node_1=node_1 +--let $node_2=node_2 +--let $node_3=node_3 +--source ../galera/include/auto_increment_offset_save.inc + +CREATE TABLE test.t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; + +--connection node_2 +--let $wsrep_provider_orig = `SELECT @@wsrep_provider` +--let $wsrep_cluster_address_orig = `SELECT @@wsrep_cluster_address` +SET wsrep_on=OFF; +INSERT INTO t1 VALUES (1); +LOCK TABLE t1 WRITE; +SET GLOBAL wsrep_sync_wait=0; + +--connection node_1 +INSERT INTO t1 VALUES (1); +SET GLOBAL wsrep_sync_wait=0; +SET GLOBAL wsrep_provider_options = 'gmcast.isolate=1'; + +--connection node_3 +# wait for node_1 to disappear +--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; +--source include/wait_condition.inc + +--connection node_2 +UNLOCK TABLES; +# wait to go non-Primary due to inconsistency voting +#--let $wait_condition = SELECT VARIABLE_VALUE = 'non-Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status'; +#--source include/wait_condition.inc +# Somehow the above times out so we use connectin to node 3 + +--connection node_3 +# wait for node_1 to disappear +--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; +--source include/wait_condition.inc + +--connection node_1 +SET GLOBAL wsrep_provider_options = 'gmcast.isolate=0'; +--source include/galera_wait_ready.inc +SET GLOBAL wsrep_sync_wait=15; +DROP TABLE test.t1; + +# reconnect node 2, since it is now inconsistent +--connection node_2 +--source include/kill_galera.inc +--source include/wait_until_disconnected.inc +--source include/start_mysqld.inc + +--connection node_2 +CALL mtr.add_suppression("Inconsistent by consensus."); +CALL mtr.add_suppression("Slave SQL: Could not execute Write_rows event on table test.t1; Duplicate entry '1' for key 'PRIMARY', Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY; the event's master log FIRST"); +CALL mtr.add_suppression("WSREP: Event 3 Write_rows_v1 apply failed: 121, seqno"); +CALL mtr.add_suppression("WSREP: Node consistency compromized, leaving cluster..."); +CALL mtr.add_suppression("WSREP: Failed to apply write set: "); + + +# Restore original auto_increment_offset values. +--source ../galera/include/auto_increment_offset_restore.inc + |