File: gr_savepoint_crash_on_rollback.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 (37 lines) | stat: -rw-r--r-- 1,699 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
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]
SET @debug_save= @@GLOBAL.DEBUG;
[connection server2]
[connection server1]
#1. Create table t1 on M1
CREATE TABLE table1(a int primary key);
INSERT INTO table1 values (1),(2);
include/rpl_sync.inc
#2. Start a transaction t1 on M1, crash the server when 'rollback [work] to savepoint' in progress
[connection server1]
include/rpl_sync.inc
[connection M1]
SET @@GLOBAL.DEBUG='d,transaction_write_set_savepoint_block_before_rollback';
BEGIN;
INSERT INTO table1 VALUES (3);
SAVEPOINT s1;
UPDATE table1 SET a= -1 where a=1;
SAVEPOINT s2;
ROLLBACK TO SAVEPOINT s1;
[connection server1]
# Kill and restart:--group_replication_local_address=GROUP_REPLICATION_LOCAL_ADDRESS1 --group_replication_group_seeds=GROUP_REPLICATION_GROUP_SEEDS --group_replication_group_name=GROUP_REPLICATION_GROUP_NAME
include/rpl_reconnect.inc
[connection server2]
include/gr_wait_for_member_state.inc
SET GLOBAL group_replication_force_members= "GROUP_REPLICATION_LOCAL_ADDRESS1";
[connection server1]
include/start_group_replication.inc
#3. check that incomplete transaction t1 is rolled back, table1 should have only 2 tuples.
include/assert.inc ['There should be two values in table1']
#4. Clean-up
DROP TABLE table1;
SET @@GLOBAL.DEBUG=@debug_save;
include/group_replication_end.inc