File: gr_recovery_channel_compression.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 (147 lines) | stat: -rw-r--r-- 7,197 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
146
147
################################################################################
# Validate that recovery channel compression configuration is properly
# exported by performance schema.
#
# Test:
# 0. The test requires two servers: M1 and M2.
# 1. Create a table on the group.
# 2. Test invalid algorithm and level values.
# 3. Test invalid algorithm and level combinations.
# 4. Test valid algorithm and level combinations.
# 5. Clean up.
################################################################################
--source include/big_test.inc
--source include/have_group_replication_plugin.inc
--source include/group_replication.inc

--echo
--echo ############################################################
--echo # 1. Create a table on the group.
--let $rpl_connection_name= server2
--source include/rpl_connection.inc
--disable_query_log
--let $saved_gr_recovery_compression_algorithm = `SELECT @@GLOBAL.group_replication_recovery_compression_algorithms;`
--let $saved_gr_recovery_compression_level = `SELECT @@GLOBAL.group_replication_recovery_zstd_compression_level;`
--enable_query_log

SET SESSION sql_log_bin= 0;
call mtr.add_suppression("Invalid compression level found while reading connection metadata repository. Resetting level to default.");
call mtr.add_suppression("Plugin group_replication reported: 'Error while creating the group replication recovery channel with donor .*");
call mtr.add_suppression("Plugin group_replication reported: 'Error when configuring the asynchronous recovery channel connection to the donor.");
call mtr.add_suppression("Plugin group_replication reported: 'Maximum number of retries when trying to connect to a donor reached. Aborting group replication incremental recovery.");
call mtr.add_suppression("Plugin group_replication reported: 'Fatal error during the incremental recovery process of Group Replication. The server will leave the group.");
call mtr.add_suppression("Plugin group_replication reported: 'Skipping leave operation: concurrent attempt to leave the group is on-going.");
SET SESSION sql_log_bin= 1;

CREATE TABLE t1 (c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
--source include/rpl_sync.inc


--echo
--echo ############################################################
--echo # 2. Test invalid algorithm and level values.
--let $rpl_connection_name= server2
--source include/rpl_connection.inc

--error ER_WRONG_TYPE_FOR_VAR
SET @@GLOBAL.group_replication_recovery_compression_algorithms= 1;

--error ER_WRONG_TYPE_FOR_VAR
SET @@GLOBAL.group_replication_recovery_compression_algorithms= 1.0;

--error ER_WRONG_VALUE_FOR_VAR
SET @@GLOBAL.group_replication_recovery_compression_algorithms= "foo";

--error ER_WRONG_VALUE_FOR_VAR
SET @@GLOBAL.group_replication_recovery_compression_algorithms= "ZLIB";

--error ER_WRONG_VALUE_FOR_VAR
SET @@GLOBAL.group_replication_recovery_compression_algorithms= "ZSTD";

--error ER_WRONG_TYPE_FOR_VAR
SET @@GLOBAL.group_replication_recovery_zstd_compression_level= "bar";

--error ER_WRONG_TYPE_FOR_VAR
SET @@GLOBAL.group_replication_recovery_zstd_compression_level= 1.0;


--echo
--echo ############################################################
--echo # 3. Test invalid algorithm and level combinations.
--let $rpl_connection_name= server2
--source include/rpl_connection.inc

SET @@GLOBAL.group_replication_recovery_compression_algorithms= "zlib";
--error ER_WRONG_VALUE_FOR_VAR
SET @@GLOBAL.group_replication_recovery_zstd_compression_level= 0;
--error ER_WRONG_VALUE_FOR_VAR
SET @@GLOBAL.group_replication_recovery_zstd_compression_level= 23;

SET @@GLOBAL.group_replication_recovery_compression_algorithms= "zstd";
--error ER_WRONG_VALUE_FOR_VAR
SET @@GLOBAL.group_replication_recovery_zstd_compression_level= 0;
--error ER_WRONG_VALUE_FOR_VAR
SET @@GLOBAL.group_replication_recovery_zstd_compression_level= 23;

SET @@GLOBAL.group_replication_recovery_compression_algorithms= "uncompressed";
--error ER_WRONG_VALUE_FOR_VAR
SET @@GLOBAL.group_replication_recovery_zstd_compression_level= 0;
--error ER_WRONG_VALUE_FOR_VAR
SET @@GLOBAL.group_replication_recovery_zstd_compression_level= 23;

--echo
--echo ############################################################
--echo # 4. Test valid algorithm and level combinations.
--let $rpl_connection_name= server2
--source include/rpl_connection.inc

SET @@GLOBAL.group_replication_recovery_compression_algorithms= DEFAULT;
SET @@GLOBAL.group_replication_recovery_zstd_compression_level= DEFAULT;

SET @@GLOBAL.group_replication_recovery_compression_algorithms= "zlib";
--source ../include/gr_recovery_channel_block.inc
--let $assert_text= 'Algorithm must be zlib'
--let $assert_cond= [SELECT COUNT(*) AS count FROM performance_schema.replication_connection_configuration WHERE CHANNEL_NAME="group_replication_recovery" AND COMPRESSION_ALGORITHM="zlib", count, 1] = 1
--source include/assert.inc
--source ../include/gr_recovery_channel_resume.inc

SET @@GLOBAL.group_replication_recovery_compression_algorithms= DEFAULT;
SET @@GLOBAL.group_replication_recovery_zstd_compression_level= DEFAULT;

SET @@GLOBAL.group_replication_recovery_compression_algorithms= "zstd";
--source ../include/gr_recovery_channel_block.inc
--let $assert_text= 'Algorithm must be zstd and level must be 3 (the default)'
--let $assert_cond= [SELECT COUNT(*) AS count FROM performance_schema.replication_connection_configuration WHERE CHANNEL_NAME="group_replication_recovery" AND COMPRESSION_ALGORITHM="zstd" AND ZSTD_COMPRESSION_LEVEL=3, count, 1] = 1
--source include/assert.inc
--source ../include/gr_recovery_channel_resume.inc

SET @@GLOBAL.group_replication_recovery_compression_algorithms= "zstd";
SET @@GLOBAL.group_replication_recovery_zstd_compression_level= 1;
--source ../include/gr_recovery_channel_block.inc
--let $assert_text= 'Algorithm must be zstd and level must be 1'
--let $assert_cond= [SELECT COUNT(*) AS count FROM performance_schema.replication_connection_configuration WHERE CHANNEL_NAME="group_replication_recovery" AND COMPRESSION_ALGORITHM="zstd" AND ZSTD_COMPRESSION_LEVEL=1, count, 1] = 1
--source include/assert.inc
--source ../include/gr_recovery_channel_resume.inc

SET @@GLOBAL.group_replication_recovery_compression_algorithms= "zstd";
SET @@GLOBAL.group_replication_recovery_zstd_compression_level= 22;
--source ../include/gr_recovery_channel_block.inc
--let $assert_text= 'Algorithm must be zstd and level must be 22'
--let $assert_cond= [SELECT COUNT(*) AS count FROM performance_schema.replication_connection_configuration WHERE CHANNEL_NAME="group_replication_recovery" AND COMPRESSION_ALGORITHM="zstd" AND ZSTD_COMPRESSION_LEVEL=22, count, 1] = 1
--source include/assert.inc
--source ../include/gr_recovery_channel_resume.inc


--echo
--echo ############################################################
--echo # 6. Clean up.
--let $rpl_connection_name= server2
--source include/rpl_connection.inc
DROP TABLE t1;

--disable_query_log
--eval SET @@GLOBAL.group_replication_recovery_compression_algorithms= "$saved_gr_recovery_compression_algorithm"
--eval SET @@GLOBAL.group_replication_recovery_zstd_compression_level= $saved_gr_recovery_compression_level
--enable_query_log

--source include/group_replication_end.inc