File: gr_test_gtid_logging_primary_failover.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 (86 lines) | stat: -rw-r--r-- 3,477 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
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]

# 1. Bootstrap M1(primary) and create some transactions.

include/start_and_bootstrap_group_replication.inc
CREATE TABLE t1 (a INT PRIMARY KEY);
INSERT INTO t1 values (1);

# 2. Start GR on M2 with higher member weight and start GR on M3.

[connection server2]
SET @member_weight2_save= @@GLOBAL.group_replication_member_weight;
SET GLOBAL group_replication_member_weight= 90;
include/start_group_replication.inc
[connection server3]
include/start_group_replication.inc

# 3. Create some transactions on M1.
#    Fake Stopped applier on M2 and create more transactions on M1.
#    Wait for transactions to reach M3.

[connection server1]
INSERT INTO t1 values (2);
INSERT INTO t1 values (3);
include/rpl_sync.inc
[connection server2]
SET @@GLOBAL.DEBUG= '+d,group_replication_wait_for_gtid_execution_force_error';
[connection server1]
INSERT INTO t1 values (4);
INSERT INTO t1 values (5);
[connection server3]

# 4. Stop primary server M1.
#    M2 will become next primary due to member weight.

[connection server1]
include/stop_group_replication.inc

# 5. Assert messages are present on error log of M2 and M3.
#    M2 becomes primary and fails since M2 applier is stopped.
#    M3 becomes primary on M2 failure.

[connection server2]
include/gr_wait_for_member_state.inc
SET @@GLOBAL.DEBUG= '-d,group_replication_wait_for_gtid_execution_force_error';
include/assert_grep.inc [Server executed GTID set is logged.]
include/assert_grep.inc [Applier retrieved GTID set is logged.]
[connection server3]
include/gr_wait_primary_member_uuid.inc
include/assert_grep.inc [Server executed GTID set is logged.]
include/assert_grep.inc [Applier retrieved GTID set is logged.]

# 6. Start GR on M1 and M2.
#    Switch to single primary mode and assert message is displayed.

[connection server1]
include/start_group_replication.inc
[connection server2]
include/stop_group_replication.inc
include/start_group_replication.inc
[connection server3]
SELECT group_replication_switch_to_multi_primary_mode();
group_replication_switch_to_multi_primary_mode()
Mode switched to multi-primary successfully.
DROP table t1;
include/rpl_sync.inc
SELECT group_replication_switch_to_single_primary_mode("MEMBER2_UUID");
group_replication_switch_to_single_primary_mode("MEMBER2_UUID")
Mode switched to single-primary successfully.
include/assert_grep.inc [Server executed GTID set is logged.]
include/assert_grep.inc [Applier retrieved GTID set is logged.]

# 7. Cleanup.

[connection server2]
SET SESSION sql_log_bin= 0;
call mtr.add_suppression("There was an issue on the primary election process: Could not wait for the execution of local transactions. The member will now 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.");
SET SESSION sql_log_bin= 1;
SET GLOBAL group_replication_member_weight= @member_weight2_save;
include/group_replication_end.inc