summaryrefslogtreecommitdiff
path: root/mysql-test/suite/galera/t/galera_autoinc_sst_mariabackup.test
blob: 72952d271d514ae850987970686a1ca10c588ed0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#
# Test that autoincrement works correctly while the cluster membership
# is changing and SST takes place.
#

--source include/big_test.inc
--source include/galera_cluster.inc
--source include/have_innodb.inc
--source include/have_mariabackup.inc

--let $node_1=node_1
--let $node_2=node_2
--source include/auto_increment_offset_save.inc

--connection node_1
--let $connection_id = `SELECT CONNECTION_ID()`

CREATE TABLE t1 (f1 INTEGER PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB;

# Issue an endless stream of autoincrement inserts

DELIMITER |;
CREATE PROCEDURE p1 ()
BEGIN
	DECLARE x INT DEFAULT 1;
	DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN END;

	WHILE 1 DO
	        INSERT INTO t1 VALUES (DEFAULT);
		COMMIT;
	END WHILE;
END|
DELIMITER ;|

--send CALL p1();
--sleep 1

--connection node_2
--send CALL p1();
--sleep 1

# Kill and restart node #2

--connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2
--connection node_2a
--source include/kill_galera.inc

--remove_file $MYSQLTEST_VARDIR/mysqld.2/data/grastate.dat
--source include/start_mysqld.inc

INSERT INTO t1 VALUES (DEFAULT);

# Terminate the stored procedure

--connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1
--connection node_1a
--disable_query_log
--eval KILL CONNECTION $connection_id
--enable_query_log
INSERT INTO t1 VALUES (DEFAULT);

--connection node_1
# CR_SERVER_LOST
--error 2013,2006
--reap

--connection node_2
# CR_SERVER_LOST
--error 2013,2006
--reap

# Confirm that the count is correct and that the cluster is intact

--connection node_1a
--let $count = `SELECT COUNT(*) FROM t1`

--connection node_2a
--disable_query_log
--eval SELECT COUNT(*) = $count AS count_equal FROM t1
--enable_query_log

CALL mtr.add_suppression("WSREP: Action message in non-primary configuration from member 0");

SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';

--connection node_1a
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';

DROP PROCEDURE p1;
DROP TABLE t1;

CALL mtr.add_suppression("gcs_caused\\(\\) returned -1 \\(Operation not permitted\\)");
CALL mtr.add_suppression("WSREP: Action message in non-primary configuration from member 0");

--let $node_1=node_1a
--let $node_2=node_2a
--source include/auto_increment_offset_restore.inc