File: gr_majority_loss_restart.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 (113 lines) | stat: -rw-r--r-- 5,006 bytes parent folder | download | duplicates (2)
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
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 session sql_log_bin=0;
call mtr.add_suppression("Old incarnation found while trying to add node*.*");
set session sql_log_bin=1;
[connection server2]
SET SESSION sql_log_bin= 0;
call mtr.add_suppression("Timeout on wait for view after joining group");
call mtr.add_suppression("read failed");
call mtr.add_suppression("The member was unable to join the group. Local port: *.*");
call mtr.add_suppression("Error connecting to all peers. Member join failed. Local port: *.*");
SET SESSION sql_log_bin= 1;

############################################################
# 1. Crash server 2.
[connection server2]
# Kill and restart
include/rpl_reconnect.inc
[connection server1]
include/gr_wait_for_member_state.inc

############################################################
# 2. Execute a transaction on server 1, which will block
#    since the group does not have majority.
[connection server_1]
CREATE TABLE t1 (c1 INT NOT NULL PRIMARY KEY);
[connection server1]

############################################################
# 3. Assert that group is still blocked.
include/rpl_gr_wait_for_number_of_members.inc
include/assert.inc [server 2 is marked as unreachable]

############################################################
# 4. Restart server 2 with group_replication_start_on_boot=ON,
#    server 2 will be refused to join the group.
[connection server2]
# Kill and restart:--group_replication_local_address=GROUP_REPLICATION_LOCAL_ADDRESS --group_replication_group_seeds=GROUP_REPLICATION_GROUP_SEEDS --group_replication_start_on_boot=ON --group-replication-group-name=GROUP_REPLICATION_GROUP_NAME
include/rpl_reconnect.inc
include/gr_wait_for_member_state.inc
[connection server1]
include/assert.inc [server 2 is marked as unreachable]

############################################################
# 5. Unblock group with server1 as a single member.
SET GLOBAL group_replication_force_members= "SERVER1_ADDRESS";

############################################################
# 6. Check that statement did unblock and was applied on
#    server1.
[connection server_1]
[connection server1]

############################################################
# 7. Rejoin server2
[connection server2]
include/stop_group_replication.inc
include/start_group_replication.inc

############################################################
# 8. Execute a transaction on both members.
[connection server1]
INSERT INTO t1 VALUES (1);
[connection server2]
INSERT INTO t1 VALUES (2);
include/rpl_sync.inc

############################################################
# 9. Validate data.
[connection server1]
include/assert.inc ['There are two values in table t1']
include/show_binlog_events.inc
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
server-binary-log.000001	#	Query	#	#	BEGIN
server-binary-log.000001	#	Query	#	#	COMMIT
server-binary-log.000001	#	Query	#	#	BEGIN
server-binary-log.000001	#	Query	#	#	COMMIT
server-binary-log.000001	#	Query	#	#	use `test`; CREATE TABLE t1 (c1 INT NOT NULL PRIMARY KEY)
server-binary-log.000001	#	Query	#	#	BEGIN
server-binary-log.000001	#	Query	#	#	COMMIT
server-binary-log.000001	#	Query	#	#	BEGIN
server-binary-log.000001	#	Table_map	#	#	table_id: # (test.t1)
server-binary-log.000001	#	Write_rows	#	#	table_id: # flags: STMT_END_F
server-binary-log.000001	#	Xid	#	#	COMMIT /* XID */
server-binary-log.000001	#	Query	#	#	BEGIN
server-binary-log.000001	#	Table_map	#	#	table_id: # (test.t1)
server-binary-log.000001	#	Write_rows	#	#	table_id: # flags: STMT_END_F
server-binary-log.000001	#	Xid	#	#	COMMIT /* XID */
[connection server2]
include/assert.inc ['There are two values in table t1']
include/show_binlog_events.inc
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
server-binary-log.000003	#	Query	#	#	use `test`; CREATE TABLE t1 (c1 INT NOT NULL PRIMARY KEY)
server-binary-log.000003	#	Query	#	#	BEGIN
server-binary-log.000003	#	Query	#	#	COMMIT
server-binary-log.000003	#	Query	#	#	BEGIN
server-binary-log.000003	#	Table_map	#	#	table_id: # (test.t1)
server-binary-log.000003	#	Write_rows	#	#	table_id: # flags: STMT_END_F
server-binary-log.000003	#	Xid	#	#	COMMIT /* XID */
server-binary-log.000003	#	Query	#	#	BEGIN
server-binary-log.000003	#	Table_map	#	#	table_id: # (test.t1)
server-binary-log.000003	#	Write_rows	#	#	table_id: # flags: STMT_END_F
server-binary-log.000003	#	Xid	#	#	COMMIT /* XID */
include/diff_tables.inc [server1:test.t1, server2:test.t1]

############################################################
# 10. Clean up.
DROP TABLE t1;
include/group_replication_end.inc