summaryrefslogtreecommitdiff
path: root/mysql-test/suite/galera/t/MW-86-wait8.test
blob: 551b0f67b7c51a2c52a50c09e1bbda095d2a749f (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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#
# SHOW commands now obey wsrep_sync_wait = 8 (WSREP_SYNC_WAIT_BEFORE_SHOW)
#
--source include/galera_cluster.inc
--source include/have_binlog_format_row.inc
--source include/have_debug_sync.inc

--connection node_2
# Make sure no signals have been leftover from previous tests to surprise us.
SELECT @@debug_sync;

SET SESSION wsrep_sync_wait = 8;
SET GLOBAL debug_dbug = "d,sync.wsrep_apply_cb";

--connection node_1
CREATE TABLE t_wait8 (f1 INTEGER) ENGINE=InnoDB;
# This will complete in node_1 but will start a background apply in node_2
# which will stop because of sync.wsrep_apply_cb we set above.
INSERT INTO t_wait8 VALUES (1);

--connection node_2

--let $wsrep_provider_options_orig = `SELECT @@wsrep_provider_options`
SET GLOBAL wsrep_provider_options = "repl.causal_read_timeout=PT0.1S";

SET SESSION debug_sync = "now WAIT_FOR sync.wsrep_apply_cb_reached";

--disable_result_log

--error ER_LOCK_WAIT_TIMEOUT
SHOW BINARY LOGS;

--error ER_LOCK_WAIT_TIMEOUT
SHOW BINLOG EVENTS;

--error ER_LOCK_WAIT_TIMEOUT
SHOW COLUMNS FROM t1;

--error ER_LOCK_WAIT_TIMEOUT
SHOW CREATE DATABASE db1;

--error ER_LOCK_WAIT_TIMEOUT
SHOW CREATE EVENT e1;

--error ER_LOCK_WAIT_TIMEOUT
SHOW CREATE FUNCTION f1;

--error ER_LOCK_WAIT_TIMEOUT
SHOW CREATE PROCEDURE p1;

--error ER_LOCK_WAIT_TIMEOUT
SHOW CREATE TABLE t1;

--error ER_LOCK_WAIT_TIMEOUT
SHOW CREATE TRIGGER tr1;

--error ER_LOCK_WAIT_TIMEOUT
SHOW CREATE VIEW v1;

--error ER_LOCK_WAIT_TIMEOUT
SHOW DATABASES;

--error 0
SHOW ENGINE InnoDB STATUS;

--error ER_LOCK_WAIT_TIMEOUT
SHOW FUNCTION CODE f1;

--error ER_LOCK_WAIT_TIMEOUT
SHOW FUNCTION STATUS;

--error ER_LOCK_WAIT_TIMEOUT
SHOW GRANTS FOR 'root'@'localhost';

--error ER_LOCK_WAIT_TIMEOUT
SHOW INDEX FROM t1;

--error ER_LOCK_WAIT_TIMEOUT
SHOW OPEN TABLES;

--error ER_LOCK_WAIT_TIMEOUT
SHOW PROCEDURE CODE p1;

--error ER_LOCK_WAIT_TIMEOUT
SHOW PROCEDURE STATUS;

--error 0
SHOW PRIVILEGES;

--error ER_LOCK_WAIT_TIMEOUT
SHOW STATUS LIKE 'wsrep_cluster_size';

--error ER_LOCK_WAIT_TIMEOUT
SHOW TABLE STATUS;

--error ER_LOCK_WAIT_TIMEOUT
SHOW TABLES;

--error ER_LOCK_WAIT_TIMEOUT
SHOW TRIGGERS;

--error ER_LOCK_WAIT_TIMEOUT
SHOW GLOBAL VARIABLES LIKE 'foo_bar';

--error 0
SHOW WARNINGS;

--enable_result_log

--disable_query_log
--eval SET GLOBAL wsrep_provider_options = "$wsrep_provider_options_orig"
--enable_query_log

# Unblock the background INSERT and remove the sync point.
SET GLOBAL debug_dbug = "";
SET DEBUG_SYNC = "now SIGNAL signal.wsrep_apply_cb";

SET SESSION wsrep_sync_wait = default;

# This will wait for the background INSERT to complete before we quit
# from the test.
DROP TABLE t_wait8;

SET debug_sync='RESET';

# Make sure no pending signals are leftover to surprise subsequent tests.
SELECT @@debug_sync;