File: rpl_reset_slave_all.test

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 (80 lines) | stat: -rw-r--r-- 3,062 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
--source include/not_group_replication_plugin.inc
--source include/have_binlog_format_row.inc
--source include/master-slave.inc

###############################################################################
#   BUG#21107331 RESET SLAVE ALL DOESN'T RESETS SLAVE_RETRIED_TRANSACTIONS
#   BUG#21111229 RESET SLAVE ALL BEHAVES DIFFERENT FOR DEFAULT AND
#                NON-DEFAULT CHANNELS
#
#   Verify that count_transactions_retries is reset to 0 after RESET SLAVE ALL
#   Step 1. Generates an innodb row lock timeout to increase
#           count_transactions_retries
#   Step 2. RESET SLAVE
#   Step 3. check count_transactions_retries is 0
###############################################################################

CREATE TABLE t1 (c1 INT KEY) ENGINE=InnoDB;

# It is used by the CHANGE MASTER below
--source include/save_binlog_position.inc

--source include/sync_slave_sql_with_master.inc

--source include/stop_slave.inc
SET @saved_replica_transaction_retries = @@GLOBAL.replica_transaction_retries;
SET @saved_innodb_lock_wait_timeout = @@GLOBAL.innodb_lock_wait_timeout;
SET GLOBAL replica_transaction_retries = 1;
SET GLOBAL innodb_lock_wait_timeout = 1;
--source include/start_slave.inc

# It blocks slave applier which applies INSERT INTO t1 VALUES(1);
BEGIN;
INSERT INTO t1 VALUES(1);

--source include/rpl_connection_master.inc
INSERT INTO t1 VALUES(1);

# Slave sql stops after retrying the transaction 1 times.
--source include/rpl_connection_slave1.inc
--let $slave_sql_errno=1205
--source include/wait_for_slave_sql_error.inc
--source include/stop_slave_io.inc

# The warnings are generated by MTS
CALL mtr.add_suppression(".*worker thread retried transaction 1 time.*");
CALL mtr.add_suppression(".*The replica coordinator and worker threads are "
                         "stopped, possibly leaving data in inconsistent.*");
--let $assert_text= count_transactions_retries should be greater than 0
--let $assert_status_name= count_transactions_retries
--let $assert_status_value= 0
--let $assert_comparator= >=
--let $table=replication_applier_status
--source include/rpl_pfs_assert_status.inc

RESET SLAVE ALL;

--let $assert_text= count_transactions_retries should be 0
--let $assert_status_name= count_transactions_retries
--let $assert_status_value= 0
--let $table= replication_applier_status
--source include/rpl_pfs_assert_status.inc

--source include/rpl_connection_slave.inc
# rollback the INSERT which is used to block slave applier.
ROLLBACK;

--echo #
--echo # Cleanup
--echo #
SET GLOBAL replica_transaction_retries = @saved_replica_transaction_retries;
SET GLOBAL innodb_lock_wait_timeout = @saved_innodb_lock_wait_timeout;

--replace_result $binlog_file BINLOG_FILE $binlog_position BINLOG_POS $MASTER_MYPORT MASTER_PORT
eval CHANGE REPLICATION SOURCE TO SOURCE_LOG_FILE = "$binlog_file", SOURCE_LOG_POS = $binlog_position,
     SOURCE_USER='root', SOURCE_HOST='127.0.0.1', SOURCE_PORT=$MASTER_MYPORT;
--source include/start_slave.inc

--source include/rpl_connection_master.inc
DROP TABLE t1;
--source include/rpl_end.inc