File: rpl_crash_safe_master.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 (117 lines) | stat: -rw-r--r-- 5,338 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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
include/master-slave.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 master]
include/stop_slave.inc
RESET MASTER;
include/start_slave.inc
call mtr.add_suppression("Attempting backtrace");
call mtr.add_suppression("allocated tablespace *., old maximum was 0");
call mtr.add_suppression("Error in Log_event::read_log_event()");
call mtr.add_suppression("Buffered warning: Performance schema disabled");
CREATE TABLE t1(a LONGBLOB) ENGINE=INNODB;
# Test case1: Set DEBUG POINT before binlog to make
#             the master crash for transaction
# Lets stop the slave IO thread first, so that it does not timeout on
# reconnection while the master is down (it happened before on some
# slow hosts).
include/sync_slave_sql_with_master.inc
include/stop_slave_io.inc
BEGIN;
INSERT INTO t1 (a) VALUES (REPEAT('a',2));
INSERT INTO t1 (a) VALUES (REPEAT('a',2));
INSERT INTO t1 (a) VALUES (REPEAT('a',2));
COMMIT;
ERROR HY000: Lost connection to MySQL server during query
# Restart the master server
# Test the transaction statements will not be binlogged
include/show_binlog_events.inc
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
master-bin.000001	#	Query	#	#	use `test`; CREATE TABLE t1(a LONGBLOB) ENGINE=INNODB
include/assert.inc [On master, test the data will be rolled back after restart.]
# lets restart the slave io thread and check that
# the slave gets synchronized again
include/start_slave_io.inc
include/sync_slave_sql_with_master.inc
# On slave, test replication will work fine, and the data 
#           is not replicated
include/diff_tables.inc [master:test.t1, slave:test.t1]
# Test case2: Set DEBUG POINT after binlog, and before the date
#             is committed to make crash for transaction
# Lets stop the slave IO thread first, so that it does not timeout on
# reconnection while the master is down (it happened before on some
# slow hosts).
include/sync_slave_sql_with_master.inc
include/stop_slave_io.inc
BEGIN;
INSERT INTO t1 (a) VALUES (REPEAT('a',2));
INSERT INTO t1 (a) VALUES (REPEAT('a',2));
INSERT INTO t1 (a) VALUES (REPEAT('a',2));
COMMIT;
ERROR HY000: Lost connection to MySQL server during query
# Restart the master server
# Test the transaction statements will be binlogged
include/show_binlog_events.inc
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
master-bin.000002	#	Query	#	#	BEGIN
master-bin.000002	#	Table_map	#	#	table_id: # (test.t1)
master-bin.000002	#	Write_rows	#	#	table_id: # flags: STMT_END_F
master-bin.000002	#	Table_map	#	#	table_id: # (test.t1)
master-bin.000002	#	Write_rows	#	#	table_id: # flags: STMT_END_F
master-bin.000002	#	Table_map	#	#	table_id: # (test.t1)
master-bin.000002	#	Write_rows	#	#	table_id: # flags: STMT_END_F
master-bin.000002	#	Xid	#	#	COMMIT /* XID */
include/assert.inc [On master, test the data will be recovered after the master restart.]
# lets restart the slave io thread and check that
# the slave gets synchronized again
include/start_slave_io.inc
include/sync_slave_sql_with_master.inc
# On slave, test replication will work fine, and the data is replicated
include/diff_tables.inc [master:test.t1, slave:test.t1]
DROP TABLE t1;
include/sync_slave_sql_with_master.inc
include/stop_slave.inc
CREATE TABLE t1(a LONGBLOB) ENGINE=INNODB;
# Test case3: Set DEBUG POINT in the middle of binlog to
#             make the master crash for transaction.
BEGIN;
INSERT INTO t1 (a) VALUES (REPEAT('a',6144));
INSERT INTO t1 (a) VALUES (REPEAT('a',6144));
INSERT INTO t1 (a) VALUES (REPEAT('a',6144));
INSERT INTO t1 (a) VALUES (REPEAT('a',6144));
INSERT INTO t1 (a) VALUES (REPEAT('a',6144));
INSERT INTO t1 (a) VALUES (REPEAT('a',6144));
INSERT INTO t1 (a) VALUES (REPEAT('a',6144));
INSERT INTO t1 (a) VALUES (REPEAT('a',6144));
INSERT INTO t1 (a) VALUES (REPEAT('a',6144));
INSERT INTO t1 (a) VALUES (REPEAT('a',6144));
INSERT INTO t1 (a) VALUES (REPEAT('a',6144));
INSERT INTO t1 (a) VALUES (REPEAT('a',6144));
INSERT INTO t1 (a) VALUES (REPEAT('a',6144));
INSERT INTO t1 (a) VALUES (REPEAT('a',6144));
INSERT INTO t1 (a) VALUES (REPEAT('a',6144));
INSERT INTO t1 (a) VALUES (REPEAT('a',6144));
INSERT INTO t1 (a) VALUES (REPEAT('a',6144));
INSERT INTO t1 (a) VALUES (REPEAT('a',6144));
INSERT INTO t1 (a) VALUES (REPEAT('a',6144));
INSERT INTO t1 (a) VALUES (REPEAT('a',6144));
INSERT INTO t1 (a) VALUES (REPEAT('a',6144));
INSERT INTO t1 (a) VALUES (REPEAT('a',6144));
INSERT INTO t1 (a) VALUES (REPEAT('a',6144));
INSERT INTO t1 (a) VALUES (REPEAT('a',6144));
COMMIT;
ERROR HY000: Lost connection to MySQL server during query
# Restart the master server
# Test the halfly binlogged transaction will be trimmed
# from the crashed binlog file
include/show_binlog_events.inc
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
master-bin.000003	#	Query	#	#	use `test`; CREATE TABLE t1(a LONGBLOB) ENGINE=INNODB
# Test the data will not be recovered successfully
# after the master restart.
SELECT COUNT(*) FROM t1;
COUNT(*)
0
DROP TABLE t1;
CHANGE REPLICATION SOURCE TO SOURCE_AUTO_POSITION= 0;