Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
10.2(EOL), 10.3(EOL), 10.5, 10.6, 10.7(EOL), 10.8(EOL), 10.9(EOL)
-
None
Description
https://buildbot.mariadb.org/#/builders/192/builds/10092
The test occasionally fails with:
10.5 22f935d6d |
rpl.rpl_mark_optimize_tbl_ddl 'innodb,mix' w6 [ fail ]
|
Test ended at 2022-06-02 22:23:29
|
|
CURRENT_TEST: rpl.rpl_mark_optimize_tbl_ddl
|
analyze: sync_with_master
|
mysqltest: At line 46: sync_with_master failed: 'select master_pos_wait('master-bin.000001', 1388, 300, '')' returned -1 indicating timeout after 300 seconds
|
|
The result from queries just before the failure was:
|
< snip >
|
connection server_1;
|
FLUSH TABLES;
|
ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB;
|
connection server_2;
|
SET @save_slave_parallel_threads= @@GLOBAL.slave_parallel_threads;
|
SET @save_slave_parallel_mode= @@GLOBAL.slave_parallel_mode;
|
include/stop_slave.inc
|
SET GLOBAL slave_parallel_threads=2;
|
SET GLOBAL slave_parallel_mode=optimistic;
|
include/start_slave.inc
|
connection server_1;
|
CREATE TABLE t1(a INT) ENGINE=INNODB;
|
OPTIMIZE TABLE t1;
|
Table Op Msg_type Msg_text
|
test.t1 optimize note Table does not support optimize, doing recreate + analyze instead
|
test.t1 optimize status OK
|
INSERT INTO t1 VALUES(1);
|
INSERT INTO t1 SELECT 1+a FROM t1;
|
INSERT INTO t1 SELECT 2+a FROM t1;
|
connection server_2;
|
Attachments
Issue Links
- is caused by
-
MDEV-31655 Parallel replication deadlock victim preference code errorneously removed
-
- Closed
-
- split to
-
MDEV-28930 ALTER TABLE Deadlocks with parallel TL_WRITE
-
- Closed
-
I actually found something. When the VATS scheduling was put into InnoDB, they errorneously removed the call to thd_deadlock_victim_preference() to select the correct victim when two parallel replication worker threads deadlock against each other. This will cause unnecessary extra deadlocks and retries. This should be fixed, I'll probably file another MDEV for it.
However, I still do not understand how it is possible to get 10 unsuccessful retries in this test, needs to be understood.