File: rpl_async_conn_failover_reset_udf.test

package info (click to toggle)
mysql-8.0 8.0.43-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,273,924 kB
  • sloc: cpp: 4,684,605; ansic: 412,450; pascal: 108,398; java: 83,641; perl: 30,221; cs: 27,067; sql: 26,594; sh: 24,181; python: 21,816; yacc: 17,169; php: 11,522; xml: 7,388; javascript: 7,076; makefile: 2,194; lex: 1,075; awk: 670; asm: 520; objc: 183; ruby: 97; lisp: 86
file content (145 lines) | stat: -rw-r--r-- 5,775 bytes parent folder | download
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
###############################################################################
# Validate several scenarios on the UDF:
#   asynchronous_connection_failover_reset
#
# Test:
#   0. This test requires two servers
#   1. Create a replication channel ch1 to replicate from
#      server2 to server1.
#   2. Try to reset asynchronous reconnection configuration with
#      invalid parameters.
#      It will not be allowed.
#   3. Try to reset asynchronous reconnection configuration while
#      channels are running.
#      It will not be allowed.
#   4. Reset asynchronous reconnection configuration while
#      channels are stopped.
#      It will be allowed.
#   5. Reset asynchronous reconnection configuration while
#      channels are stopped for managed source.
#      It will be allowed.
#   6. Clean up.
###############################################################################
--source include/have_slave_repository_type_table.inc
--let $rpl_skip_start_slave= 1
--source include/master-slave.inc

--echo
--echo ############################################################
--echo # 1. Create a replication channel ch1 to replicate from
--echo #    server2 to server1.

--let $rpl_connection_name= slave
--source include/rpl_connection.inc

--replace_result $SERVER_MYPORT_1 SERVER_1_PORT
--eval CHANGE REPLICATION SOURCE TO SOURCE_HOST='127.0.0.1', SOURCE_USER='root', SOURCE_AUTO_POSITION=1, SOURCE_PORT=$SERVER_MYPORT_1, SOURCE_CONNECT_RETRY=1, SOURCE_RETRY_COUNT=1, SOURCE_CONNECTION_AUTO_FAILOVER=1 FOR CHANNEL 'ch1'
--let $rpl_channel_name='ch1'
--source include/start_slave.inc



--echo
--echo ############################################################
--echo # 2. Try to reset asynchronous reconnection configuration with
--echo #    invalid parameters.
--echo #    It will not be allowed.

--error ER_CANT_INITIALIZE_UDF
SELECT asynchronous_connection_failover_reset(1);


--error ER_CANT_INITIALIZE_UDF
SELECT asynchronous_connection_failover_reset("");


--echo
--echo ############################################################
--echo # 3. Try to reset asynchronous reconnection configuration while
--echo #    channels are running.
--echo #    It will not be allowed.
--error ER_CANT_INITIALIZE_UDF
SELECT asynchronous_connection_failover_reset();

--let $rpl_channel_name='ch1'
--source include/stop_slave_sql.inc

--let $assert_text= Verify replica_monitor thread is running
--let $assert_cond= "[select count(*) FROM performance_schema.threads where NAME=\"thread/sql/replica_monitor\"]" = 1;
--source include/assert.inc

--error ER_CANT_INITIALIZE_UDF
SELECT asynchronous_connection_failover_reset();


--echo
--echo ############################################################
--echo # 4. Reset asynchronous reconnection configuration while
--echo #    channels are stopped.
--echo #    It will be allowed.
--let $rpl_channel_name='ch1'
--source include/stop_slave_io.inc

--let $assert_text= Verify replica_monitor thread is not running
--let $assert_cond= "[select count(*) FROM performance_schema.threads where NAME=\"thread/sql/replica_monitor\"]" = 0;
--source include/assert.inc

SELECT asynchronous_connection_failover_reset();

# Add a source.
SELECT asynchronous_connection_failover_add_source('ch1', '127.0.0.1', 3100);

--let $assert_text= 'There is one row in performance_schema.replication_asynchronous_connection_failover'
--let $assert_cond= [SELECT COUNT(*) count FROM performance_schema.replication_asynchronous_connection_failover, count, 1] = 1
--source include/assert.inc

SELECT asynchronous_connection_failover_reset();

--let $assert_text= 'There are 0 rows in performance_schema.replication_asynchronous_connection_failover'
--let $assert_cond= [SELECT COUNT(*) count FROM performance_schema.replication_asynchronous_connection_failover, count, 1] = 0
--source include/assert.inc


--echo
--echo ############################################################
--echo # 5. Reset asynchronous reconnection configuration while
--echo #    channels are stopped for managed source.
--echo #    It will be allowed.
# Add a managed source.
--let $uuid_val= `SELECT UUID()`
--replace_result $uuid_val UUID_VAL
--eval SELECT asynchronous_connection_failover_add_managed('ch1', 'GroupReplication', "$uuid_val", '127.0.0.1', 3100, '', 80, 60)

--let $assert_text= 'There is one row in performance_schema.replication_asynchronous_connection_failover_managed'
--let $assert_cond= [SELECT COUNT(*) count FROM performance_schema.replication_asynchronous_connection_failover_managed, count, 1] = 1
--source include/assert.inc

--let $assert_text= 'There is one row in performance_schema.replication_asynchronous_connection_failover'
--let $assert_cond= [SELECT COUNT(*) count FROM performance_schema.replication_asynchronous_connection_failover, count, 1] = 1
--source include/assert.inc


SELECT asynchronous_connection_failover_reset();

--let $assert_text= 'There are 0 rows in performance_schema.replication_asynchronous_connection_failover_managed'
--let $assert_cond= [SELECT COUNT(*) count FROM performance_schema.replication_asynchronous_connection_failover_managed, count, 1] = 0
--source include/assert.inc

--let $assert_text= 'There are 0 rows in performance_schema.replication_asynchronous_connection_failover'
--let $assert_cond= [SELECT COUNT(*) count FROM performance_schema.replication_asynchronous_connection_failover, count, 1] = 0
--source include/assert.inc


--echo
--echo ############################################################
--echo # 6. Clean up.
--let $rpl_channel_name='ch1'
--let $rpl_reset_slave_all= 1
--let $rpl_multi_source= 1
--source include/rpl_reset_slave.inc
--let $rpl_channel_name=
--let $rpl_reset_slave_all=
--let $rpl_multi_source=

--let $rpl_skip_sync = 1
--source include/rpl_end.inc