File: gr_autorejoin_stop_gr.result

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 (109 lines) | stat: -rw-r--r-- 3,737 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
include/group_replication.inc [rpl_server_count=3]
Warnings:
Note	####	Sending passwords in plain text without SSL/TLS is extremely insecure.
Note	####	Storing MySQL user name or password information in the connection metadata repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START REPLICA; see the 'START REPLICA Syntax' in the MySQL Manual for more information.
[connection server1]

####
# 0) The test requires three servers.
####

[connection server1]
SET sql_log_bin = 0;
call mtr.add_suppression("Member was expelled from the group due to network failures, changing member status to ERROR.");
call mtr.add_suppression("The server was automatically set into read only mode after an error was detected.");
call mtr.add_suppression("\\[GCS\\] The member has left the group but the new view will not be installed, probably because it has not been delivered yet.");
call mtr.add_suppression("\\[GCS\\] read failed");
call mtr.add_suppression("Started auto-rejoin procedure attempt*");
call mtr.add_suppression("Auto-rejoin procedure attempt*");
SET sql_log_bin = 1;
include/gr_autorejoin_monitoring.inc

####
# 1) Provoke a member expel.
####

SET GLOBAL group_replication_autorejoin_tries = 2016;
SET @debug_saved = @@GLOBAL.DEBUG;
SET GLOBAL group_replication_local_address = "128.0.0.1:3306";
include/gr_expel_member_from_group.inc
SET SESSION sql_log_bin = 0;
CREATE TABLE pid_table(pid_no INT PRIMARY KEY);
LOAD DATA LOCAL INFILE 'pid_file' INTO TABLE pid_table;
DROP TABLE pid_table;
SET SESSION sql_log_bin = 1;

####
# 2) Stop the plugin while the auto-rejoin is running on the expelled
# member.
####

include/stop_group_replication.inc

####
# 3) Verify that the auto-rejoin process should stop immediately.
####


####
# 4) Verify that the expelled member left the group.
####

[connection server2]
include/rpl_gr_wait_for_number_of_members.inc
include/assert.inc [Member 1 should not be in the group]
[connection server3]
include/rpl_gr_wait_for_number_of_members.inc
include/assert.inc [Member 1 should not be in the group]

####
# 5) Set the group_replication_exit_state_action on that member to
# ABORT_SERVER and restart the plugin.
####

[connection server1]
SET @saved_exit_state_action = @@GLOBAL.group_replication_exit_state_action;
SET @@GLOBAL.group_replication_exit_state_action = ABORT_SERVER;
SET GLOBAL group_replication_local_address = "LOCAL_ADDRESS_SERVER";
include/start_group_replication.inc

####
# 6) Expel that member again.
####

SET GLOBAL group_replication_local_address = "128.0.0.1:3306";
SET @@GLOBAL.DEBUG='+d,group_replication_stop_before_rejoin_loop';
SET @@GLOBAL.DEBUG='+d,group_replication_long_retry';
SET @@GLOBAL.DEBUG='-d,group_replication_stop_before_rejoin';
include/gr_expel_member_from_group.inc
SET SESSION sql_log_bin = 0;
CREATE TABLE pid_table(pid_no INT PRIMARY KEY);
LOAD DATA LOCAL INFILE 'pid_file' INTO TABLE pid_table;
DROP TABLE pid_table;
SET SESSION sql_log_bin = 1;

####
# 7) Stop the plugin while the auto-rejoin is running on that member.
####

SET DEBUG_SYNC = "now WAIT_FOR signal.autorejoin_entering_loop";
SET DEBUG_SYNC = "now SIGNAL signal.autorejoin_enter_loop";
include/stop_group_replication.inc

####
# 8) Verify that it didn't abort and that it left the group.
####

include/gr_wait_for_member_state.inc
SET GLOBAL group_replication_local_address = "LOCAL_ADDRESS_SERVER";
include/start_group_replication.inc

####
# 9) Cleanup.
####

SET @@GLOBAL.DEBUG = @debug_saved;
SET GLOBAL group_replication_autorejoin_tries = default;
SET GLOBAL group_replication_exit_state_action = @saved_exit_state_action;
include/gr_end_autorejoin_monitoring.inc
include/group_replication_end.inc