summaryrefslogtreecommitdiff
path: root/mysql-test/suite/galera/t/MDEV-22707.test
blob: 19755f7c5acd4b0b84a814de85ad147863421b6b (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
#
# MDEV-22707 galera got stuck after flush tables
#

--source include/galera_cluster.inc
--source include/have_innodb.inc
--source include/have_debug.inc
--source include/have_debug_sync.inc

CREATE TABLE t1(f2 INT) ENGINE=InnoDB;

--connect node_1_applier_thd, 127.0.0.1, root, , test, $NODE_MYPORT_1
SET GLOBAL debug_dbug = "+d,sync.wsrep_apply_cb";

--connection node_2
SET SESSION wsrep_sync_wait = 0;
--send INSERT INTO t1 (f2) VALUES (2)

--connection node_1_applier_thd
# Wait for `sync.wsrep_apply_cb_reached` signal
SET SESSION DEBUG_SYNC = "now WAIT_FOR sync.wsrep_apply_cb_reached";

--connection node_1
SET SESSION wsrep_sync_wait = 0;
SET DEBUG_SYNC = 'wsrep_before_replication SIGNAL wsrep_before_replication_reached WAIT_FOR continue';
--send INSERT INTO t1 (f2) VALUES (1)

--connect node_1_flush_thd, 127.0.0.1, root, , test, $NODE_MYPORT_1
SET DEBUG_SYNC="now WAIT_FOR wsrep_before_replication_reached";
SET GLOBAL debug_dbug = "+d,sync.wsrep_before_mdl_wait";
--send FLUSH TABLES

--connect node_1_sync_release_thd, 127.0.0.1, root, , test, $NODE_MYPORT_1
# First clear all DBUG points
SET GLOBAL debug_dbug = "";
# Now signal threads to continue execution
SET DEBUG_SYNC = "now SIGNAL signal.wsrep_before_mdl_wait";
SET DEBUG_SYNC = "now SIGNAL signal.wsrep_apply_cb";
SET DEBUG_SYNC = "now SIGNAL continue";
SET DEBUG_SYNC = "RESET";

--connection node_1
--reap

--connection node_1_flush_thd
--reap

--connection node_2
--reap

DROP TABLE t1;