mariadb/mysql-test/suite/galera/t/mysql-wsrep#198.test
Jan Lindström 56fbc0cdd7 MDEV-36953 : mysql-wsrep#198 test hangs
Test changes only. INSERT may fail for lock wait because
in other node we have LOCK TABLE or it may succeed
if next statement i.e. UNLOCK TABLES is fast enough.

Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
2025-06-30 01:08:55 +02:00

58 lines
1.7 KiB
Text

--source include/galera_cluster.inc
--source include/have_innodb.inc
CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB;
CREATE TABLE t2 (id INT PRIMARY KEY) ENGINE=InnoDB;
--connection node_2
# Ensure that the tables have been created on node #2
SELECT 1 FROM DUAL;
LOCK TABLE t2 WRITE;
--connect node_2_ctrl, 127.0.0.1, root, , test, $NODE_MYPORT_2
--connection node_2_ctrl
SET SESSION wsrep_sync_wait=0;
--connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2
--connection node_2a
--send OPTIMIZE TABLE t1,t2;
--connection node_2_ctrl
SET SESSION wsrep_sync_wait = 0;
--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE LIKE 'Waiting for table metadata lock%' OR STATE LIKE 'acquiring total order isolation%';
--let $wait_condition_on_error_output = SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
--source include/wait_condition_with_debug_and_kill.inc
--connect node_2b, 127.0.0.1, root, , test, $NODE_MYPORT_2
--connection node_2b
--send REPAIR TABLE t1,t2;
--connection node_2_ctrl
--let $wait_condition = SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE LIKE 'Waiting for table metadata lock%' OR STATE LIKE 'acquiring total order isolation%';
--let $wait_condition_on_error_output = SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
--source include/wait_condition_with_debug_and_kill.inc
--connection node_1
# We have LOCK TABLE in node_2 so this could fail on lock wait
# or next statement is fast enought and succeed
--error 0,ER_LOCK_WAIT_TIMEOUT
INSERT INTO t2 VALUES (1);
--connection node_2
UNLOCK TABLES;
--connection node_2a
--reap
--connection node_2b
--reap
DROP TABLE t1;
DROP TABLE t2;
--connection node_1
--disconnect node_2a
--disconnect node_2b
--disconnect node_2_ctrl