include/master-slave.inc [connection master] connection server_2; SET @old_parallel_threads=@@GLOBAL.slave_parallel_threads; include/stop_slave.inc SET GLOBAL slave_parallel_threads=10; SET GLOBAL slave_parallel_mode='conservative'; include/start_slave.inc *** MDEV-7847: "Slave worker thread retried transaction 10 time(s) in vain, giving up", followed by replication hanging *** *** MDEV-7882: Excessive transaction retry in parallel replication *** connection server_1; CREATE TABLE t7 (a int PRIMARY KEY, b INT) ENGINE=InnoDB; CREATE TABLE t8 (a int PRIMARY KEY, b INT) ENGINE=InnoDB; connection server_2; include/stop_slave.inc SET GLOBAL slave_parallel_threads=40; SELECT @old_retries:=@@GLOBAL.slave_transaction_retries; @old_retries:=@@GLOBAL.slave_transaction_retries 10 SET GLOBAL slave_transaction_retries= 5; connection server_1; INSERT INTO t7 VALUES (1,1), (2,2), (3,3), (4,4), (5,5); SET @old_dbug= @@SESSION.debug_dbug; SET @commit_id= 42; SET SESSION debug_dbug="+d,binlog_force_commit_id"; INSERT INTO t8 VALUES (1,1); INSERT INTO t8 VALUES (2,2); INSERT INTO t8 VALUES (3,3); INSERT INTO t8 VALUES (4,4); INSERT INTO t8 VALUES (5,5); INSERT INTO t8 VALUES (6,6); INSERT INTO t8 VALUES (7,7); INSERT INTO t8 VALUES (8,8); UPDATE t7 SET b=9 WHERE a=3; UPDATE t7 SET b=10 WHERE a=3; UPDATE t7 SET b=11 WHERE a=3; INSERT INTO t8 VALUES (12,12); INSERT INTO t8 VALUES (13,13); UPDATE t7 SET b=14 WHERE a=3; UPDATE t7 SET b=15 WHERE a=3; INSERT INTO t8 VALUES (16,16); UPDATE t7 SET b=17 WHERE a=3; INSERT INTO t8 VALUES (18,18); INSERT INTO t8 VALUES (19,19); UPDATE t7 SET b=20 WHERE a=3; INSERT INTO t8 VALUES (21,21); UPDATE t7 SET b=22 WHERE a=3; INSERT INTO t8 VALUES (23,24); INSERT INTO t8 VALUES (24,24); UPDATE t7 SET b=25 WHERE a=3; INSERT INTO t8 VALUES (26,26); UPDATE t7 SET b=27 WHERE a=3; BEGIN; INSERT INTO t8 VALUES (28,28); INSERT INTO t8 VALUES (29,28), (30,28); INSERT INTO t8 VALUES (31,28); INSERT INTO t8 VALUES (32,28); INSERT INTO t8 VALUES (33,28); INSERT INTO t8 VALUES (34,28); INSERT INTO t8 VALUES (35,28); INSERT INTO t8 VALUES (36,28); INSERT INTO t8 VALUES (37,28); INSERT INTO t8 VALUES (38,28); INSERT INTO t8 VALUES (39,28); INSERT INTO t8 VALUES (40,28); INSERT INTO t8 VALUES (41,28); INSERT INTO t8 VALUES (42,28); COMMIT; SET @commit_id=43; INSERT INTO t8 VALUES (43,43); INSERT INTO t8 VALUES (44,44); UPDATE t7 SET b=45 WHERE a=3; INSERT INTO t8 VALUES (46,46); INSERT INTO t8 VALUES (47,47); UPDATE t7 SET b=48 WHERE a=3; INSERT INTO t8 VALUES (49,49); INSERT INTO t8 VALUES (50,50); SET @commit_id=44; INSERT INTO t8 VALUES (51,51); INSERT INTO t8 VALUES (52,52); UPDATE t7 SET b=53 WHERE a=3; INSERT INTO t8 VALUES (54,54); INSERT INTO t8 VALUES (55,55); UPDATE t7 SET b=56 WHERE a=3; INSERT INTO t8 VALUES (57,57); UPDATE t7 SET b=58 WHERE a=3; INSERT INTO t8 VALUES (58,58); INSERT INTO t8 VALUES (59,59); INSERT INTO t8 VALUES (60,60); INSERT INTO t8 VALUES (61,61); UPDATE t7 SET b=62 WHERE a=3; INSERT INTO t8 VALUES (63,63); INSERT INTO t8 VALUES (64,64); INSERT INTO t8 VALUES (65,65); INSERT INTO t8 VALUES (66,66); UPDATE t7 SET b=67 WHERE a=3; INSERT INTO t8 VALUES (68,68); UPDATE t7 SET b=69 WHERE a=3; UPDATE t7 SET b=70 WHERE a=3; UPDATE t7 SET b=71 WHERE a=3; INSERT INTO t8 VALUES (72,72); UPDATE t7 SET b=73 WHERE a=3; UPDATE t7 SET b=74 WHERE a=3; UPDATE t7 SET b=75 WHERE a=3; UPDATE t7 SET b=76 WHERE a=3; INSERT INTO t8 VALUES (77,77); UPDATE t7 SET b=78 WHERE a=3; INSERT INTO t8 VALUES (79,79); UPDATE t7 SET b=80 WHERE a=3; INSERT INTO t8 VALUES (81,81); UPDATE t7 SET b=82 WHERE a=3; INSERT INTO t8 VALUES (83,83); UPDATE t7 SET b=84 WHERE a=3; SET @commit_id=45; INSERT INTO t8 VALUES (85,85); UPDATE t7 SET b=86 WHERE a=3; INSERT INTO t8 VALUES (87,87); SET @commit_id=46; INSERT INTO t8 VALUES (88,88); INSERT INTO t8 VALUES (89,89); INSERT INTO t8 VALUES (90,90); SET SESSION debug_dbug=@old_dbug; INSERT INTO t8 VALUES (91,91); INSERT INTO t8 VALUES (92,92); INSERT INTO t8 VALUES (93,93); INSERT INTO t8 VALUES (94,94); INSERT INTO t8 VALUES (95,95); INSERT INTO t8 VALUES (96,96); INSERT INTO t8 VALUES (97,97); INSERT INTO t8 VALUES (98,98); INSERT INTO t8 VALUES (99,99); SELECT * FROM t7 ORDER BY a; a b 1 1 2 2 3 86 4 4 5 5 SELECT * FROM t8 ORDER BY a; a b 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 12 12 13 13 16 16 18 18 19 19 21 21 23 24 24 24 26 26 28 28 29 28 30 28 31 28 32 28 33 28 34 28 35 28 36 28 37 28 38 28 39 28 40 28 41 28 42 28 43 43 44 44 46 46 47 47 49 49 50 50 51 51 52 52 54 54 55 55 57 57 58 58 59 59 60 60 61 61 63 63 64 64 65 65 66 66 68 68 72 72 77 77 79 79 81 81 83 83 85 85 87 87 88 88 89 89 90 90 91 91 92 92 93 93 94 94 95 95 96 96 97 97 98 98 99 99 include/save_master_gtid.inc connection server_2; include/start_slave.inc include/sync_with_master_gtid.inc SELECT * FROM t7 ORDER BY a; a b 1 1 2 2 3 86 4 4 5 5 SELECT * FROM t8 ORDER BY a; a b 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 12 12 13 13 16 16 18 18 19 19 21 21 23 24 24 24 26 26 28 28 29 28 30 28 31 28 32 28 33 28 34 28 35 28 36 28 37 28 38 28 39 28 40 28 41 28 42 28 43 43 44 44 46 46 47 47 49 49 50 50 51 51 52 52 54 54 55 55 57 57 58 58 59 59 60 60 61 61 63 63 64 64 65 65 66 66 68 68 72 72 77 77 79 79 81 81 83 83 85 85 87 87 88 88 89 89 90 90 91 91 92 92 93 93 94 94 95 95 96 96 97 97 98 98 99 99 connection server_2; include/stop_slave.inc SET GLOBAL slave_parallel_threads=@old_parallel_threads; SET GLOBAL slave_transaction_retries=@old_retries; include/start_slave.inc SET DEBUG_SYNC= 'RESET'; connection server_1; DROP TABLE if exists t1,t2,t3,t4,t5,t6,t7,t8; Warnings: Note 1051 Unknown table 'test.t1' Note 1051 Unknown table 'test.t2' Note 1051 Unknown table 'test.t3' Note 1051 Unknown table 'test.t4' Note 1051 Unknown table 'test.t5' Note 1051 Unknown table 'test.t6' SET DEBUG_SYNC= 'RESET'; include/rpl_end.inc