Commit 57caff24 authored by Jan Lindström's avatar Jan Lindström

MDEV-25423 : Donor node fails to shutdown after mysqldump SST

* Table should have primary key
* Enable wsrep_sync_wait before final selects
* Enable autocommit before final selects.
* Fix joiner monitoring in case of mysqldump.
* Add wait_conditions to stabilize
parent c3b016ef
...@@ -2,24 +2,26 @@ ...@@ -2,24 +2,26 @@
--echo This is accomplished by shutting down node #2 and removing its var directory before restarting it --echo This is accomplished by shutting down node #2 and removing its var directory before restarting it
--connection node_1 --connection node_1
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB; CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (1,'node1_committed_before');
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (2,'node1_committed_before');
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (3,'node1_committed_before');
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (4,'node1_committed_before');
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (5,'node1_committed_before');
COMMIT; COMMIT;
--connection node_2 --connection node_2
--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME LIKE 'test/t1';
--source include/wait_condition.inc
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (6,'node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (7,'node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (8,'node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (9,'node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (10,'node2_committed_before');
COMMIT; COMMIT;
--echo Shutting down server ... --echo Shutting down server ...
...@@ -38,28 +40,28 @@ COMMIT; ...@@ -38,28 +40,28 @@ COMMIT;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node1_committed_during'); INSERT INTO t1 VALUES (11,'node1_committed_during');
INSERT INTO t1 VALUES ('node1_committed_during'); INSERT INTO t1 VALUES (12,'node1_committed_during');
INSERT INTO t1 VALUES ('node1_committed_during'); INSERT INTO t1 VALUES (13,'node1_committed_during');
INSERT INTO t1 VALUES ('node1_committed_during'); INSERT INTO t1 VALUES (14,'node1_committed_during');
INSERT INTO t1 VALUES ('node1_committed_during'); INSERT INTO t1 VALUES (15,'node1_committed_during');
COMMIT; COMMIT;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (16,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (17,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (18,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (19,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (20,'node1_to_be_committed_after');
--connect node_1a_galera_st_clean_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1 --connect node_1a_galera_st_clean_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (21,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (22,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (23,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (24,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (25,'node1_to_be_rollbacked_after');
--connection node_2 --connection node_2
--echo Starting server ... --echo Starting server ...
...@@ -70,52 +72,56 @@ INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); ...@@ -70,52 +72,56 @@ INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node2_committed_after'); INSERT INTO t1 VALUES (26,'node2_committed_after');
INSERT INTO t1 VALUES ('node2_committed_after'); INSERT INTO t1 VALUES (27,'node2_committed_after');
INSERT INTO t1 VALUES ('node2_committed_after'); INSERT INTO t1 VALUES (28,'node2_committed_after');
INSERT INTO t1 VALUES ('node2_committed_after'); INSERT INTO t1 VALUES (29,'node2_committed_after');
INSERT INTO t1 VALUES ('node2_committed_after'); INSERT INTO t1 VALUES (30,'node2_committed_after');
COMMIT; COMMIT;
--connection node_1 --connection node_1
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (31,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (32,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (33,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (34,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (35,'node1_to_be_committed_after');
COMMIT; COMMIT;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node1_committed_after'); INSERT INTO t1 VALUES (36,'node1_committed_after');
INSERT INTO t1 VALUES ('node1_committed_after'); INSERT INTO t1 VALUES (37,'node1_committed_after');
INSERT INTO t1 VALUES ('node1_committed_after'); INSERT INTO t1 VALUES (38,'node1_committed_after');
INSERT INTO t1 VALUES ('node1_committed_after'); INSERT INTO t1 VALUES (39,'node1_committed_after');
INSERT INTO t1 VALUES ('node1_committed_after'); INSERT INTO t1 VALUES (40,'node1_committed_after');
COMMIT; COMMIT;
--connection node_1a_galera_st_clean_slave --connection node_1a_galera_st_clean_slave
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (41,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (42,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (43,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (44,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (45,'node1_to_be_rollbacked_after');
ROLLBACK; ROLLBACK;
--let $wait_condition = SELECT COUNT(*)=35 FROM t1 --let $wait_condition = SELECT COUNT(*)=35 FROM t1
--source include/wait_condition.inc --source include/wait_condition.inc
SELECT COUNT(*) = 35 FROM t1; SET AUTOCOMMIT=ON;
SET SESSION wsrep_sync_wait=15;
SELECT COUNT(*) AS EXPECT_35 FROM t1;
SELECT * from t1;
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COMMIT; COMMIT;
SET AUTOCOMMIT=ON;
--connection node_1 --connection node_1
--let $wait_condition = SELECT COUNT(*)=35 FROM t1 --let $wait_condition = SELECT COUNT(*)=35 FROM t1
--source include/wait_condition.inc --source include/wait_condition.inc
SELECT COUNT(*) = 35 FROM t1; SET AUTOCOMMIT=ON;
SET SESSION wsrep_sync_wait=15;
SELECT COUNT(*) AS EXPECT_35 FROM t1;
SELECT * from t1;
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
DROP TABLE t1; DROP TABLE t1;
COMMIT; COMMIT;
SET AUTOCOMMIT=ON;
--echo Performing State Transfer on a server that has been temporarily disconnected --echo Performing State Transfer on a server that has been temporarily disconnected
--connection node_1 --connection node_1
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB; CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (1,'node1_committed_before');
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (2,'node1_committed_before');
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (3,'node1_committed_before');
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (4,'node1_committed_before');
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (5,'node1_committed_before');
COMMIT; COMMIT;
--connection node_2 --connection node_2
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (6,'node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (7,'node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (8,'node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (9,'node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (10,'node2_committed_before');
COMMIT; COMMIT;
--source suite/galera/include/galera_stop_replication.inc --source suite/galera/include/galera_stop_replication.inc
...@@ -29,28 +29,28 @@ COMMIT; ...@@ -29,28 +29,28 @@ COMMIT;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node1_committed_during'); INSERT INTO t1 VALUES (11,'node1_committed_during');
INSERT INTO t1 VALUES ('node1_committed_during'); INSERT INTO t1 VALUES (12,'node1_committed_during');
INSERT INTO t1 VALUES ('node1_committed_during'); INSERT INTO t1 VALUES (13,'node1_committed_during');
INSERT INTO t1 VALUES ('node1_committed_during'); INSERT INTO t1 VALUES (14,'node1_committed_during');
INSERT INTO t1 VALUES ('node1_committed_during'); INSERT INTO t1 VALUES (15,'node1_committed_during');
COMMIT; COMMIT;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (16,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (17,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (18,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (19,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (20,'node1_to_be_committed_after');
--connect node_1a_galera_st_disconnect_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1 --connect node_1a_galera_st_disconnect_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (21,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (22,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (23,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (24,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (25,'node1_to_be_rollbacked_after');
--connection node_2 --connection node_2
--source suite/galera/include/galera_start_replication.inc --source suite/galera/include/galera_start_replication.inc
...@@ -68,52 +68,55 @@ INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); ...@@ -68,52 +68,55 @@ INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node2_committed_after'); INSERT INTO t1 VALUES (26,'node2_committed_after');
INSERT INTO t1 VALUES ('node2_committed_after'); INSERT INTO t1 VALUES (27,'node2_committed_after');
INSERT INTO t1 VALUES ('node2_committed_after'); INSERT INTO t1 VALUES (28,'node2_committed_after');
INSERT INTO t1 VALUES ('node2_committed_after'); INSERT INTO t1 VALUES (29,'node2_committed_after');
INSERT INTO t1 VALUES ('node2_committed_after'); INSERT INTO t1 VALUES (30,'node2_committed_after');
COMMIT; COMMIT;
--connection node_1 --connection node_1
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (31,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (32,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (33,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (34,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (35,'node1_to_be_committed_after');
COMMIT; COMMIT;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node1_committed_after'); INSERT INTO t1 VALUES (36,'node1_committed_after');
INSERT INTO t1 VALUES ('node1_committed_after'); INSERT INTO t1 VALUES (37,'node1_committed_after');
INSERT INTO t1 VALUES ('node1_committed_after'); INSERT INTO t1 VALUES (38,'node1_committed_after');
INSERT INTO t1 VALUES ('node1_committed_after'); INSERT INTO t1 VALUES (39,'node1_committed_after');
INSERT INTO t1 VALUES ('node1_committed_after'); INSERT INTO t1 VALUES (40,'node1_committed_after');
COMMIT; COMMIT;
--connection node_1a_galera_st_disconnect_slave --connection node_1a_galera_st_disconnect_slave
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (41,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (42,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (43,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (44,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (45,'node1_to_be_rollbacked_after');
ROLLBACK; ROLLBACK;
--let $wait_condition = SELECT COUNT(*)=35 FROM t1 --let $wait_condition = SELECT COUNT(*)=35 FROM t1
--source include/wait_condition.inc --source include/wait_condition.inc
SELECT COUNT(*) = 35 FROM t1;
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COMMIT;
SET AUTOCOMMIT=ON; SET AUTOCOMMIT=ON;
SET SESSION wsrep_sync_wait=15;
SELECT COUNT(*) AS EXPECT_35 FROM t1;
SELECT * FROM t1;
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
--connection node_1 --connection node_1
--let $wait_condition = SELECT COUNT(*)=35 FROM t1 --let $wait_condition = SELECT COUNT(*)=35 FROM t1
--source include/wait_condition.inc --source include/wait_condition.inc
SELECT COUNT(*) = 35 FROM t1; SET AUTOCOMMIT=ON;
SET SESSION wsrep_sync_wait=15;
SELECT COUNT(*) AS EXPECT_35 FROM t1;
SELECT * FROM t1;
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
DROP TABLE t1; DROP TABLE t1;
COMMIT; COMMIT;
SET AUTOCOMMIT=ON;
--echo Performing State Transfer on a server that has been killed and restarted --echo Performing State Transfer on a server that has been killed and restarted
--connection node_1 --connection node_1
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB; CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (1,'node1_committed_before');
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (2,'node1_committed_before');
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (3,'node1_committed_before');
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (4,'node1_committed_before');
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (5,'node1_committed_before');
COMMIT; COMMIT;
--connection node_2 --connection node_2
--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME LIKE 'test/t1';
--source include/wait_condition.inc
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (6,'node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (7,'node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (8,'node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (9,'node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (10,'node2_committed_before');
COMMIT; COMMIT;
--source include/kill_galera.inc --source include/kill_galera.inc
...@@ -29,28 +31,28 @@ COMMIT; ...@@ -29,28 +31,28 @@ COMMIT;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node1_committed_during'); INSERT INTO t1 VALUES (11,'node1_committed_during');
INSERT INTO t1 VALUES ('node1_committed_during'); INSERT INTO t1 VALUES (12,'node1_committed_during');
INSERT INTO t1 VALUES ('node1_committed_during'); INSERT INTO t1 VALUES (13,'node1_committed_during');
INSERT INTO t1 VALUES ('node1_committed_during'); INSERT INTO t1 VALUES (14,'node1_committed_during');
INSERT INTO t1 VALUES ('node1_committed_during'); INSERT INTO t1 VALUES (15,'node1_committed_during');
COMMIT; COMMIT;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (16,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (17,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (18,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (19,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (20,'node1_to_be_committed_after');
--connect node_1a_galera_st_kill_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1 --connect node_1a_galera_st_kill_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (21,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (22,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (23,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (24,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (25,'node1_to_be_rollbacked_after');
--connection node_2 --connection node_2
--let $galera_wsrep_recover_server_id=2 --let $galera_wsrep_recover_server_id=2
...@@ -64,52 +66,56 @@ INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); ...@@ -64,52 +66,56 @@ INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node2_committed_after'); INSERT INTO t1 VALUES (26,'node2_committed_after');
INSERT INTO t1 VALUES ('node2_committed_after'); INSERT INTO t1 VALUES (27,'node2_committed_after');
INSERT INTO t1 VALUES ('node2_committed_after'); INSERT INTO t1 VALUES (28,'node2_committed_after');
INSERT INTO t1 VALUES ('node2_committed_after'); INSERT INTO t1 VALUES (29,'node2_committed_after');
INSERT INTO t1 VALUES ('node2_committed_after'); INSERT INTO t1 VALUES (30,'node2_committed_after');
COMMIT; COMMIT;
--connection node_1 --connection node_1
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (31,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (32,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (33,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (34,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (35,'node1_to_be_committed_after');
COMMIT; COMMIT;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node1_committed_after'); INSERT INTO t1 VALUES (36,'node1_committed_after');
INSERT INTO t1 VALUES ('node1_committed_after'); INSERT INTO t1 VALUES (37,'node1_committed_after');
INSERT INTO t1 VALUES ('node1_committed_after'); INSERT INTO t1 VALUES (38,'node1_committed_after');
INSERT INTO t1 VALUES ('node1_committed_after'); INSERT INTO t1 VALUES (39,'node1_committed_after');
INSERT INTO t1 VALUES ('node1_committed_after'); INSERT INTO t1 VALUES (40,'node1_committed_after');
COMMIT; COMMIT;
--connection node_1a_galera_st_kill_slave --connection node_1a_galera_st_kill_slave
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (41,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (42,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (43,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (45,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (46,'node1_to_be_rollbacked_after');
ROLLBACK; ROLLBACK;
--let $wait_condition = SELECT COUNT(*)=35 FROM t1 --let $wait_condition = SELECT COUNT(*)=35 FROM t1
--source include/wait_condition.inc --source include/wait_condition.inc
SELECT COUNT(*) = 35 FROM t1; SET AUTOCOMMIT=ON;
SET SESSION wsrep_sync_wait=15;
SELECT COUNT(*) AS EXPECT_35 FROM t1;
SELECT * FROM t1;
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COMMIT; COMMIT;
SET AUTOCOMMIT=ON;
--connection node_1 --connection node_1
--let $wait_condition = SELECT COUNT(*)=35 FROM t1 --let $wait_condition = SELECT COUNT(*)=35 FROM t1
--source include/wait_condition.inc --source include/wait_condition.inc
SELECT COUNT(*) = 35 FROM t1; SET AUTOCOMMIT=ON;
SET SESSION wsrep_sync_wait=15;
SELECT COUNT(*) AS EXPECT_35 FROM t1;
SELECT * FROM t1;
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
DROP TABLE t1; DROP TABLE t1;
COMMIT; COMMIT;
SET AUTOCOMMIT=ON;
...@@ -4,22 +4,24 @@ if ($have_debug) { ...@@ -4,22 +4,24 @@ if ($have_debug) {
--echo while a DDL was in progress on it --echo while a DDL was in progress on it
--connection node_1 --connection node_1
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB; CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (1,'node1_committed_before');
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (2,'node1_committed_before');
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (3,'node1_committed_before');
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (4,'node1_committed_before');
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (5,'node1_committed_before');
--connection node_2 --connection node_2
--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME LIKE 'test/t1';
--source include/wait_condition.inc
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (6,'node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (7,'node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (8,'node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (9,'node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (10,'node2_committed_before');
COMMIT; COMMIT;
# Suspend the applier as it applies the ALTER TABLE # Suspend the applier as it applies the ALTER TABLE
...@@ -42,28 +44,28 @@ SET wsrep_sync_wait = 0; ...@@ -42,28 +44,28 @@ SET wsrep_sync_wait = 0;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 (f1) VALUES ('node1_committed_during'); INSERT INTO t1 (id,f1) VALUES (11,'node1_committed_during');
INSERT INTO t1 (f1) VALUES ('node1_committed_during'); INSERT INTO t1 (id,f1) VALUES (12,'node1_committed_during');
INSERT INTO t1 (f1) VALUES ('node1_committed_during'); INSERT INTO t1 (id,f1) VALUES (13,'node1_committed_during');
INSERT INTO t1 (f1) VALUES ('node1_committed_during'); INSERT INTO t1 (id,f1) VALUES (14,'node1_committed_during');
INSERT INTO t1 (f1) VALUES ('node1_committed_during'); INSERT INTO t1 (id,f1) VALUES (15,'node1_committed_during');
COMMIT; COMMIT;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after'); INSERT INTO t1 (id,f1) VALUES (16,'node1_to_be_committed_after');
INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after'); INSERT INTO t1 (id,f1) VALUES (17,'node1_to_be_committed_after');
INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after'); INSERT INTO t1 (id,f1) VALUES (18,'node1_to_be_committed_after');
INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after'); INSERT INTO t1 (id,f1) VALUES (19,'node1_to_be_committed_after');
INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after'); INSERT INTO t1 (id,f1) VALUES (20,'node1_to_be_committed_after');
--connect node_1a_galera_st_kill_slave_ddl, 127.0.0.1, root, , test, $NODE_MYPORT_1 --connect node_1a_galera_st_kill_slave_ddl, 127.0.0.1, root, , test, $NODE_MYPORT_1
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 (id,f1) VALUES (21,'node1_to_be_rollbacked_after');
INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 (id,f1) VALUES (22,'node1_to_be_rollbacked_after');
INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 (id,f1) VALUES (23,'node1_to_be_rollbacked_after');
INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 (id,f1) VALUES (24,'node1_to_be_rollbacked_after');
INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 (id,f1) VALUES (25,'node1_to_be_rollbacked_after');
--connection node_2 --connection node_2
--let $galera_wsrep_recover_server_id=2 --let $galera_wsrep_recover_server_id=2
...@@ -76,58 +78,66 @@ INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after'); ...@@ -76,58 +78,66 @@ INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size' --let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'
--source include/wait_condition.inc --source include/wait_condition.inc
--let $wait_condition = SELECT COUNT(*) = 3 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
--source include/wait_condition.inc
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 (f1) VALUES ('node2_committed_after'); INSERT INTO t1 (id,f1) VALUES (26,'node2_committed_after');
INSERT INTO t1 (f1) VALUES ('node2_committed_after'); INSERT INTO t1 (id,f1) VALUES (27,'node2_committed_after');
INSERT INTO t1 (f1) VALUES ('node2_committed_after'); INSERT INTO t1 (id,f1) VALUES (28,'node2_committed_after');
INSERT INTO t1 (f1) VALUES ('node2_committed_after'); INSERT INTO t1 (id,f1) VALUES (29,'node2_committed_after');
INSERT INTO t1 (f1) VALUES ('node2_committed_after'); INSERT INTO t1 (id,f1) VALUES (30,'node2_committed_after');
COMMIT; COMMIT;
--connection node_1 --connection node_1
INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after'); INSERT INTO t1 (id,f1) VALUES (31,'node1_to_be_committed_after');
INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after'); INSERT INTO t1 (id,f1) VALUES (32,'node1_to_be_committed_after');
INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after'); INSERT INTO t1 (id,f1) VALUES (33,'node1_to_be_committed_after');
INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after'); INSERT INTO t1 (id,f1) VALUES (34,'node1_to_be_committed_after');
INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after'); INSERT INTO t1 (id,f1) VALUES (35,'node1_to_be_committed_after');
COMMIT; COMMIT;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 (f1) VALUES ('node1_committed_after'); INSERT INTO t1 (id,f1) VALUES (36,'node1_committed_after');
INSERT INTO t1 (f1) VALUES ('node1_committed_after'); INSERT INTO t1 (id,f1) VALUES (37,'node1_committed_after');
INSERT INTO t1 (f1) VALUES ('node1_committed_after'); INSERT INTO t1 (id,f1) VALUES (38,'node1_committed_after');
INSERT INTO t1 (f1) VALUES ('node1_committed_after'); INSERT INTO t1 (id,f1) VALUES (39,'node1_committed_after');
INSERT INTO t1 (f1) VALUES ('node1_committed_after'); INSERT INTO t1 (id,f1) VALUES (40,'node1_committed_after');
COMMIT; COMMIT;
--connection node_1a_galera_st_kill_slave_ddl --connection node_1a_galera_st_kill_slave_ddl
INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 (id,f1) VALUES (41,'node1_to_be_rollbacked_after');
INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 (id,f1) VALUES (42,'node1_to_be_rollbacked_after');
INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 (id,f1) VALUES (43,'node1_to_be_rollbacked_after');
INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 (id,f1) VALUES (44,'node1_to_be_rollbacked_after');
INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 (id,f1) VALUES (45,'node1_to_be_rollbacked_after');
ROLLBACK; ROLLBACK;
--let $wait_condition = SELECT COUNT(*)=35 FROM t1 --let $wait_condition = SELECT COUNT(*)=35 FROM t1
--source include/wait_condition.inc --source include/wait_condition.inc
SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; SET AUTOCOMMIT=ON;
SELECT COUNT(*) = 35 FROM t1; SET SESSION wsrep_sync_wait=15;
SELECT COUNT(*) AS EXPECT_3 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
SELECT COUNT(*) AS EXPECT_35 FROM t1;
SELECT * FROM t1;
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COMMIT; COMMIT;
SET AUTOCOMMIT=ON;
--connection node_1 --connection node_1
--let $wait_condition = SELECT COUNT(*)=35 FROM t1 --let $wait_condition = SELECT COUNT(*)=35 FROM t1
--source include/wait_condition.inc --source include/wait_condition.inc
SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
SELECT COUNT(*) = 35 FROM t1; SET AUTOCOMMIT=ON;
SET SESSION wsrep_sync_wait=15;
SELECT COUNT(*) AS EXPECT_3 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
SELECT COUNT(*) AS EXPECT_35 FROM t1;
SELECT * FROM t1;
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
DROP TABLE t1; DROP TABLE t1;
COMMIT; COMMIT;
SET AUTOCOMMIT=ON;
SET GLOBAL debug_dbug = $debug_orig; SET GLOBAL debug_dbug = $debug_orig;
} }
--echo Performing State Transfer on a server that has been shut down cleanly and restarted --echo Performing State Transfer on a server that has been shut down cleanly and restarted
--connection node_1 --connection node_1
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB; CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (1,'node1_committed_before');
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (2,'node1_committed_before');
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (3,'node1_committed_before');
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (4,'node1_committed_before');
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (5,'node1_committed_before');
COMMIT; COMMIT;
--connection node_2 --connection node_2
...@@ -17,11 +17,11 @@ COMMIT; ...@@ -17,11 +17,11 @@ COMMIT;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (6,'node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (7,'node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (8,'node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (9,'node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (10,'node2_committed_before');
COMMIT; COMMIT;
--echo Shutting down server ... --echo Shutting down server ...
...@@ -33,28 +33,28 @@ COMMIT; ...@@ -33,28 +33,28 @@ COMMIT;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node1_committed_during'); INSERT INTO t1 VALUES (11,'node1_committed_during');
INSERT INTO t1 VALUES ('node1_committed_during'); INSERT INTO t1 VALUES (12,'node1_committed_during');
INSERT INTO t1 VALUES ('node1_committed_during'); INSERT INTO t1 VALUES (13,'node1_committed_during');
INSERT INTO t1 VALUES ('node1_committed_during'); INSERT INTO t1 VALUES (14,'node1_committed_during');
INSERT INTO t1 VALUES ('node1_committed_during'); INSERT INTO t1 VALUES (15,'node1_committed_during');
COMMIT; COMMIT;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (16,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (17,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (18,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (19,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (20,'node1_to_be_committed_after');
--connect node_1a_galera_st_shutdown_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1 --connect node_1a_galera_st_shutdown_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (21,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (22,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (23,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (24,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (25,'node1_to_be_rollbacked_after');
--connection node_2 --connection node_2
--echo Starting server ... --echo Starting server ...
...@@ -65,52 +65,57 @@ INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); ...@@ -65,52 +65,57 @@ INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node2_committed_after'); INSERT INTO t1 VALUES (26,'node2_committed_after');
INSERT INTO t1 VALUES ('node2_committed_after'); INSERT INTO t1 VALUES (27,'node2_committed_after');
INSERT INTO t1 VALUES ('node2_committed_after'); INSERT INTO t1 VALUES (28,'node2_committed_after');
INSERT INTO t1 VALUES ('node2_committed_after'); INSERT INTO t1 VALUES (29,'node2_committed_after');
INSERT INTO t1 VALUES ('node2_committed_after'); INSERT INTO t1 VALUES (30,'node2_committed_after');
COMMIT; COMMIT;
--connection node_1 --connection node_1
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (31,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (32,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (33,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (34,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (35,'node1_to_be_committed_after');
COMMIT; COMMIT;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node1_committed_after'); INSERT INTO t1 VALUES (36,'node1_committed_after');
INSERT INTO t1 VALUES ('node1_committed_after'); INSERT INTO t1 VALUES (37,'node1_committed_after');
INSERT INTO t1 VALUES ('node1_committed_after'); INSERT INTO t1 VALUES (38,'node1_committed_after');
INSERT INTO t1 VALUES ('node1_committed_after'); INSERT INTO t1 VALUES (39,'node1_committed_after');
INSERT INTO t1 VALUES ('node1_committed_after'); INSERT INTO t1 VALUES (40,'node1_committed_after');
COMMIT; COMMIT;
--connection node_1a_galera_st_shutdown_slave --connection node_1a_galera_st_shutdown_slave
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (41,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (42,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (43,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (44,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (45,'node1_to_be_rollbacked_after');
ROLLBACK; ROLLBACK;
--let $wait_condition = SELECT COUNT(*)=35 FROM t1 --let $wait_condition = SELECT COUNT(*)=35 FROM t1
--source include/wait_condition.inc --source include/wait_condition.inc
SELECT COUNT(*) = 35 FROM t1; SET AUTOCOMMIT=ON;
SET SESSION wsrep_sync_wait=15;
SELECT COUNT(*) AS EXPECT_15 FROM t1;
SELECT * from t1;
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COMMIT; COMMIT;
SET AUTOCOMMIT=ON;
--connection node_1 --connection node_1
--let $wait_condition = SELECT COUNT(*)=35 FROM t1 --let $wait_condition = SELECT COUNT(*)=35 FROM t1
--source include/wait_condition.inc --source include/wait_condition.inc
SELECT COUNT(*) = 35 FROM t1; SET AUTOCOMMIT=ON;
SET SESSION wsrep_sync_wait=15;
SELECT COUNT(*) AS EXPECT_15 FROM t1;
SELECT * from t1;
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
DROP TABLE t1; DROP TABLE t1;
COMMIT; COMMIT;
SET AUTOCOMMIT=ON;
...@@ -2,97 +2,173 @@ connection node_2; ...@@ -2,97 +2,173 @@ connection node_2;
connection node_1; connection node_1;
Performing State Transfer on a server that has been killed and restarted Performing State Transfer on a server that has been killed and restarted
connection node_1; connection node_1;
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB; CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (1,'node1_committed_before');
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (2,'node1_committed_before');
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (3,'node1_committed_before');
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (4,'node1_committed_before');
INSERT INTO t1 VALUES ('node1_committed_before'); INSERT INTO t1 VALUES (5,'node1_committed_before');
COMMIT; COMMIT;
connection node_2; connection node_2;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (6,'node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (7,'node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (8,'node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (9,'node2_committed_before');
INSERT INTO t1 VALUES ('node2_committed_before'); INSERT INTO t1 VALUES (10,'node2_committed_before');
COMMIT; COMMIT;
Killing server ... Killing server ...
connection node_1; connection node_1;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node1_committed_during'); INSERT INTO t1 VALUES (11,'node1_committed_during');
INSERT INTO t1 VALUES ('node1_committed_during'); INSERT INTO t1 VALUES (12,'node1_committed_during');
INSERT INTO t1 VALUES ('node1_committed_during'); INSERT INTO t1 VALUES (13,'node1_committed_during');
INSERT INTO t1 VALUES ('node1_committed_during'); INSERT INTO t1 VALUES (14,'node1_committed_during');
INSERT INTO t1 VALUES ('node1_committed_during'); INSERT INTO t1 VALUES (15,'node1_committed_during');
COMMIT; COMMIT;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (16,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (17,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (18,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (19,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (20,'node1_to_be_committed_after');
connect node_1a_galera_st_kill_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1; connect node_1a_galera_st_kill_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (21,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (22,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (23,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (24,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (25,'node1_to_be_rollbacked_after');
connection node_2; connection node_2;
Performing --wsrep-recover ... Performing --wsrep-recover ...
Starting server ... Starting server ...
Using --wsrep-start-position when starting mysqld ... Using --wsrep-start-position when starting mysqld ...
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node2_committed_after'); INSERT INTO t1 VALUES (26,'node2_committed_after');
INSERT INTO t1 VALUES ('node2_committed_after'); INSERT INTO t1 VALUES (27,'node2_committed_after');
INSERT INTO t1 VALUES ('node2_committed_after'); INSERT INTO t1 VALUES (28,'node2_committed_after');
INSERT INTO t1 VALUES ('node2_committed_after'); INSERT INTO t1 VALUES (29,'node2_committed_after');
INSERT INTO t1 VALUES ('node2_committed_after'); INSERT INTO t1 VALUES (30,'node2_committed_after');
COMMIT; COMMIT;
connection node_1; connection node_1;
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (31,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (32,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (33,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (34,'node1_to_be_committed_after');
INSERT INTO t1 VALUES ('node1_to_be_committed_after'); INSERT INTO t1 VALUES (35,'node1_to_be_committed_after');
COMMIT; COMMIT;
SET AUTOCOMMIT=OFF; SET AUTOCOMMIT=OFF;
START TRANSACTION; START TRANSACTION;
INSERT INTO t1 VALUES ('node1_committed_after'); INSERT INTO t1 VALUES (36,'node1_committed_after');
INSERT INTO t1 VALUES ('node1_committed_after'); INSERT INTO t1 VALUES (37,'node1_committed_after');
INSERT INTO t1 VALUES ('node1_committed_after'); INSERT INTO t1 VALUES (38,'node1_committed_after');
INSERT INTO t1 VALUES ('node1_committed_after'); INSERT INTO t1 VALUES (39,'node1_committed_after');
INSERT INTO t1 VALUES ('node1_committed_after'); INSERT INTO t1 VALUES (40,'node1_committed_after');
COMMIT; COMMIT;
connection node_1a_galera_st_kill_slave; connection node_1a_galera_st_kill_slave;
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (41,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (42,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (43,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (45,'node1_to_be_rollbacked_after');
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after'); INSERT INTO t1 VALUES (46,'node1_to_be_rollbacked_after');
ROLLBACK; ROLLBACK;
SELECT COUNT(*) = 35 FROM t1; SET AUTOCOMMIT=ON;
COUNT(*) = 35 SET SESSION wsrep_sync_wait=15;
1 SELECT COUNT(*) AS EXPECT_35 FROM t1;
EXPECT_35
35
SELECT * FROM t1;
id f1
1 node1_committed_before
2 node1_committed_before
3 node1_committed_before
4 node1_committed_before
5 node1_committed_before
6 node2_committed_before
7 node2_committed_before
8 node2_committed_before
9 node2_committed_before
10 node2_committed_before
11 node1_committed_during
12 node1_committed_during
13 node1_committed_during
14 node1_committed_during
15 node1_committed_during
16 node1_to_be_committed_after
17 node1_to_be_committed_after
18 node1_to_be_committed_after
19 node1_to_be_committed_after
20 node1_to_be_committed_after
26 node2_committed_after
27 node2_committed_after
28 node2_committed_after
29 node2_committed_after
30 node2_committed_after
31 node1_to_be_committed_after
32 node1_to_be_committed_after
33 node1_to_be_committed_after
34 node1_to_be_committed_after
35 node1_to_be_committed_after
36 node1_committed_after
37 node1_committed_after
38 node1_committed_after
39 node1_committed_after
40 node1_committed_after
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COUNT(*) = 0 COUNT(*) = 0
1 1
COMMIT; COMMIT;
SET AUTOCOMMIT=ON;
connection node_1; connection node_1;
SELECT COUNT(*) = 35 FROM t1; SET AUTOCOMMIT=ON;
COUNT(*) = 35 SET SESSION wsrep_sync_wait=15;
1 SELECT COUNT(*) AS EXPECT_35 FROM t1;
EXPECT_35
35
SELECT * FROM t1;
id f1
1 node1_committed_before
2 node1_committed_before
3 node1_committed_before
4 node1_committed_before
5 node1_committed_before
6 node2_committed_before
7 node2_committed_before
8 node2_committed_before
9 node2_committed_before
10 node2_committed_before
11 node1_committed_during
12 node1_committed_during
13 node1_committed_during
14 node1_committed_during
15 node1_committed_during
16 node1_to_be_committed_after
17 node1_to_be_committed_after
18 node1_to_be_committed_after
19 node1_to_be_committed_after
20 node1_to_be_committed_after
26 node2_committed_after
27 node2_committed_after
28 node2_committed_after
29 node2_committed_after
30 node2_committed_after
31 node1_to_be_committed_after
32 node1_to_be_committed_after
33 node1_to_be_committed_after
34 node1_to_be_committed_after
35 node1_to_be_committed_after
36 node1_committed_after
37 node1_committed_after
38 node1_committed_after
39 node1_committed_after
40 node1_committed_after
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COUNT(*) = 0 COUNT(*) = 0
1 1
DROP TABLE t1; DROP TABLE t1;
COMMIT; COMMIT;
SET AUTOCOMMIT=ON;
--- suite/galera/r/galera_sst_mysqldump.result 2018-12-20 14:22:41.730134062 +0100
+++ suite/galera/r/galera_sst_mysqldump.reject 2019-01-16 22:18:44.139781857 +0100
@@ -1,3 +1,5 @@
+connection node_2;
+connection node_1;
Setting SST method to mysqldump ...
call mtr.add_suppression("WSREP: wsrep_sst_method is set to 'mysqldump' yet mysqld bind_address is set to '127.0.0.1'");
call mtr.add_suppression("Failed to load slave replication state from table mysql.gtid_slave_pos");
@@ -56,6 +58,9 @@
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
connection node_2;
Loading wsrep provider ...
+disconnect node_2;
+connect node_2, 127.0.0.1, root, , test, $NODE_MYPORT_2;
+connection node_2;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
INSERT INTO t1 VALUES ('node2_committed_after');
...@@ -1250,6 +1250,19 @@ static ssize_t sst_prepare_mysqldump (const char* addr_in, ...@@ -1250,6 +1250,19 @@ static ssize_t sst_prepare_mysqldump (const char* addr_in,
*addr_out= addr_in; *addr_out= addr_in;
} }
pthread_t monitor;
ret = mysql_thread_create (key_wsrep_sst_joiner_monitor, &monitor, NULL, wsrep_sst_joiner_monitor_thread, NULL);
if (ret)
{
WSREP_ERROR("sst_prepare_other(): mysql_thread_create() failed: %d (%s)",
ret, strerror(ret));
return -ret;
}
sst_joiner_completed= false;
pthread_detach (monitor);
return ret; return ret;
} }
......
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