mirror of
https://github.com/MariaDB/server.git
synced 2026-05-08 08:04:29 +02:00
MDEV-15803 Fix and re-enable test galera_var_auto_inc_control_on
The test assumes that `@@global.auto_increment_offset` is equal to `wsrep_local_index + 1`. Which is normally the case if galera runs with option `wsrep_auto_increment_control` enabled. However, if some prior test performs a restart of a server, then `wsrep_local_index` may change, and galera will set the value of `auto_increment_offset` accordingly. However, if `auto_increment_offset` changes during a test run, then mtr will complain. To avoid that, tests that perform restarts include `auto_increment_offset_save.inc` and `auto_increment_offset_restore.inc`. Which reset the value of `auto_increment_offset`. And when that happens, `auto_increment_offset` will no longer be equal to `wsrep_local_index + 1`, and the test fails. To avoid this problem, simply check that the offsets are different on the nodes that compose the cluster.
This commit is contained in:
parent
e2c5283568
commit
74f22939dc
3 changed files with 18 additions and 30 deletions
|
|
@ -28,6 +28,5 @@ galera_ssl_upgrade : MDEV-13549 Galera test failures
|
|||
galera.MW-329 : wsrep_local_replays not stable
|
||||
galera.MW-328A : have_deadlocks test not stable
|
||||
galera_var_retry_autocommit : MDEV-15794 Test failure on galera.galera_var_retry_autocommit
|
||||
galera_var_auto_inc_control_on : MDEV-15803 Test failure on galera.galera_var_auto_inc_control_on
|
||||
query_cache : MDEV-15805 Test failure on galera.query_cache
|
||||
|
||||
|
|
|
|||
|
|
@ -1,29 +1,15 @@
|
|||
CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, node VARCHAR(10)) ENGINE=InnoDB;
|
||||
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
|
||||
VARIABLE_VALUE
|
||||
2
|
||||
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_index';
|
||||
VARIABLE_VALUE
|
||||
0
|
||||
SELECT @@auto_increment_increment = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size');
|
||||
@@auto_increment_increment = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size')
|
||||
1
|
||||
SELECT @@global.auto_increment_offset = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_index') + 1;
|
||||
@@global.auto_increment_offset = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_index') + 1
|
||||
auto_increment_offset_differ
|
||||
1
|
||||
INSERT INTO t1 VALUES (DEFAULT, 'node1');;
|
||||
INSERT INTO t1 VALUES (DEFAULT, 'node2');;
|
||||
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
|
||||
VARIABLE_VALUE
|
||||
2
|
||||
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_index';
|
||||
VARIABLE_VALUE
|
||||
1
|
||||
SELECT @@auto_increment_increment = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size');
|
||||
@@auto_increment_increment = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size')
|
||||
1
|
||||
SELECT @@global.auto_increment_offset = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_index') + 1;
|
||||
@@global.auto_increment_offset = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_index') + 1
|
||||
auto_increment_offset_differ
|
||||
1
|
||||
INSERT INTO t1 VALUES (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2');;
|
||||
INSERT INTO t1 VALUES (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1'), (DEFAULT, 'node1');;
|
||||
|
|
|
|||
|
|
@ -5,24 +5,21 @@
|
|||
--source include/galera_cluster.inc
|
||||
--source include/have_innodb.inc
|
||||
|
||||
# Save original auto_increment_offset values.
|
||||
--let $node_1=node_1
|
||||
--let $node_2=node_2
|
||||
--source include/auto_increment_offset_save.inc
|
||||
|
||||
--connection node_1
|
||||
|
||||
CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, node VARCHAR(10)) ENGINE=InnoDB;
|
||||
|
||||
--let $auto_increment_offset_node_1 = `SELECT @@global.auto_increment_offset`
|
||||
# auto_increment_increment is equal to the number of nodes
|
||||
# auto_increment_offset is equal to the ID of the node
|
||||
|
||||
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
|
||||
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_index';
|
||||
SELECT @@auto_increment_increment = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size');
|
||||
SELECT @@global.auto_increment_offset = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_index') + 1;
|
||||
|
||||
--connection node_2
|
||||
--disable_query_log
|
||||
--eval SELECT @@global.auto_increment_offset != $auto_increment_offset_node_1 AS auto_increment_offset_differ;
|
||||
--enable_query_log
|
||||
|
||||
# Expect no conflicts
|
||||
--connection node_1
|
||||
--send INSERT INTO t1 VALUES (DEFAULT, 'node1');
|
||||
|
||||
--connection node_2
|
||||
|
|
@ -34,12 +31,18 @@ SELECT @@global.auto_increment_offset = (SELECT VARIABLE_VALUE FROM INFORMATION_
|
|||
--connection node_2
|
||||
--reap
|
||||
|
||||
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
|
||||
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_index';
|
||||
--let $auto_increment_offset_node_2 = `SELECT @@global.auto_increment_offset`
|
||||
# auto_increment_increment is equal to the number of nodes
|
||||
SELECT @@auto_increment_increment = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size');
|
||||
SELECT @@global.auto_increment_offset = (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_index') + 1;
|
||||
|
||||
--connection node_1
|
||||
--disable_query_log
|
||||
--eval SELECT @@global.auto_increment_offset != $auto_increment_offset_node_2 AS auto_increment_offset_differ;
|
||||
--enable_query_log
|
||||
|
||||
|
||||
# Expect no conflicts
|
||||
--connection node_2
|
||||
--send INSERT INTO t1 VALUES (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2'), (DEFAULT, 'node2');
|
||||
|
||||
--connection node_1
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue