File: gr_primary_mode_group_operations_35.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 (57 lines) | stat: -rw-r--r-- 2,707 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
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]
set session sql_log_bin=0;
call mtr.add_suppression("The server was automatically set into read only mode after an error was detected.");
call mtr.add_suppression("A configuration change was killed in this member. The member will now leave the group as its configuration may have diverged.");
call mtr.add_suppression("Skipping leave operation: concurrent attempt to leave the group is on-going.");
call mtr.add_suppression("The function 'group_replication_switch_to_single_primary_mode' failed. This operation was locally killed and for that reason terminated*");
set session sql_log_bin=1;
[connection server2]
CREATE TABLE test.t1 (a INT PRIMARY KEY);
include/rpl_sync.inc

# 1. Get a transaction stuck on server 2 (the new primary)
[connection server_2]
# Adding debug point 'group_replication_wait_on_observer_trans' to @@GLOBAL.debug
[connection server_1]
INSERT INTO t1 VALUES (1);
[connection server_2]
SET DEBUG_SYNC= "now WAIT_FOR signal.group_replication_wait_on_observer_trans_waiting";

# 2. Do a change to single primary mode with server 2 as the new primary
# Get the connection ID
# See that it is stuck on Primary election
[connection server1]
SELECT group_replication_switch_to_single_primary_mode("MEMBER2_UUID");
[connection server_1]
include/assert.inc [The stage should be "Single-primary Switch: executing Primary election"]
[connection server3]
include/assert.inc [The stage should be "Single-primary Switch: executing Primary election"]

# 3. Kill the query
[connection server_1]
KILL QUERY CONNECTION_ID;

# 4. Resume transactions, it shall succeed and check the action
#    completed in the other members
[connection server_2]
# Removing debug point 'group_replication_wait_on_observer_trans' from @@GLOBAL.debug
SET DEBUG_SYNC= 'now SIGNAL signal.group_replication_wait_on_observer_trans_continue';
[connection server1]
group_replication_switch_to_single_primary_mode("MEMBER2_UUID")
Mode switched to single-primary successfully.
[connection server_2]
include/gr_assert_primary_member.inc
SET DEBUG_SYNC='RESET';
[connection server3]
include/gr_assert_secondary_member.inc
[connection server1]
include/gr_assert_secondary_member.inc

# 5. Cleanup
[connection server2]
DROP TABLE t1;
include/group_replication_end.inc