File: gr_exit_state_action_on_recovery.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 (95 lines) | stat: -rw-r--r-- 4,539 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

#########################################################################
# 0) Setup group of 2 members (M1 and M2) but only start GR on M2.
#########################################################################

include/group_replication.inc
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]
[connection server1]
SET sql_log_bin = 0;
CREATE TABLE t1 (a INT PRIMARY KEY);
INSERT INTO t1 VALUES (1);
SET sql_log_bin = 1;
[connection server2]
include/start_and_bootstrap_group_replication.inc
[connection server1]
SET sql_log_bin = 0;
call mtr.add_suppression("read failed");
call mtr.add_suppression("Replica SQL for channel 'group_replication_recovery': Error 'Table 't1'*");
call mtr.add_suppression("Replica SQL for channel 'group_replication_recovery': Worker [0-9] failed executing transaction*");
call mtr.add_suppression("Replica SQL for channel 'group_replication_recovery': ... The replica coordinator and worker threads are stopped,*");
call mtr.add_suppression("Replica: Table 't1' already exists Error_code:*");
call mtr.add_suppression("Maximum number of retries when trying to connect to a donor reached. Aborting group replication incremental recovery.");
call mtr.add_suppression("Fatal error during the incremental recovery process of Group Replication. The server will leave the group.");
call mtr.add_suppression("The server was automatically set into read only mode after an error was detected.");
call mtr.add_suppression("Skipping leave operation: concurrent attempt to leave the group is on-going.");
call mtr.add_suppression("The plugin encountered a critical error and will abort: Fatal error in the recovery module of Group Replication.");
call mtr.add_suppression("Error while starting the group replication incremental recovery receiver/applier threads");
SET sql_log_bin = 1;

#########################################################################
# 1) Force error during the catch-up phase of M1.
#########################################################################

[connection server2]
CREATE TABLE t1 (a INT PRIMARY KEY);
[connection server1]
include/start_group_replication.inc

#########################################################################
# 1.1) Verify that M1 goes into ERROR state and to super_read_only mode.
#########################################################################

include/gr_wait_for_member_state.inc
[connection server1]
include/assert.inc [super_read_only should be enabled]
[connection server2]
include/rpl_gr_wait_for_number_of_members.inc

#########################################################################
# 2) Set group_replication_exit_state_action to ABORT_SERVER on M1.
#########################################################################

[connection server1]
include/stop_group_replication.inc
SET @@GLOBAL.group_replication_exit_state_action = ABORT_SERVER;

#########################################################################
# 3) Force another error during the catch-up phase of M1.
#########################################################################

include/start_group_replication.inc

#########################################################################
# 3.1) Verify that M1 aborted.
#########################################################################

[connection server2]
include/rpl_gr_wait_for_number_of_members.inc
include/assert.inc [Member 1 should have aborted]

#########################################################################
# 4) Relaunch M1 and join the group.
#########################################################################

[connection server1]
include/rpl_reconnect.inc
[connection server1]
SET SESSION sql_log_bin= 0;
DROP TABLE t1;
SET SESSION sql_log_bin= 1;
RESET MASTER;
SET @@global.group_replication_group_seeds="GROUP_SEEDS_SERVER1";
SET @@global.group_replication_local_address="LOCAL_ADDRESS_SERVER1";
include/start_group_replication.inc
include/rpl_gr_wait_for_number_of_members.inc

#########################################################################
# 5) Cleanup.
#########################################################################

DROP TABLE t1;
include/group_replication_end.inc