mirror of
https://github.com/MariaDB/server.git
synced 2025-04-19 13:45:32 +02:00

The test case set debug_sync=RESET without waiting for the server thread to receive the prior signal. This can cause the signal to be lost, the thread to not wake up, and thus the test to time out. Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
66 lines
1.9 KiB
Text
66 lines
1.9 KiB
Text
# Verify deadlock between XA-PREPARE and BACKUP on the optimistic slave
|
|
--source include/have_debug.inc
|
|
--source include/have_debug_sync.inc
|
|
--source include/have_innodb.inc
|
|
# The test is not format specific, MIXED is required to optimize testing time
|
|
--source include/have_binlog_format_mixed.inc
|
|
--source include/master-slave.inc
|
|
|
|
--connection master
|
|
CREATE TABLE t (a INT) ENGINE = innodb;
|
|
|
|
--sync_slave_with_master
|
|
--source include/stop_slave.inc
|
|
SET STATEMENT sql_log_bin= 0 FOR ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB;
|
|
SET @old_parallel_threads= @@GLOBAL.slave_parallel_threads;
|
|
SET @old_parallel_mode = @@GLOBAL.slave_parallel_mode;
|
|
SET @@global.slave_parallel_threads= 2;
|
|
SET @@global.slave_parallel_mode = 'optimistic';
|
|
|
|
--connection master
|
|
--echo # MDEV-35110
|
|
SET @@gtid_seq_no=100;
|
|
insert into t set a=1;
|
|
xa start 'x';
|
|
insert into t set a=2;
|
|
xa end 'x';
|
|
xa prepare 'x';
|
|
|
|
--connection slave
|
|
SET @@global.debug_dbug="+d,hold_worker_on_schedule";
|
|
start slave;
|
|
SET debug_sync = 'now WAIT_FOR reached_pause';
|
|
--let $wait_condition= SELECT count(*) = 1 FROM information_schema.processlist WHERE state LIKE "Waiting for prior transaction to commit"
|
|
--source include/wait_condition.inc
|
|
|
|
--connection slave1
|
|
backup stage start;
|
|
backup stage block_commit;
|
|
|
|
--connection slave
|
|
--let $wait_condition= SELECT count(*) = 1 FROM information_schema.processlist WHERE state LIKE "Waiting for backup lock"
|
|
SET debug_sync = 'now SIGNAL continue_worker';
|
|
--source include/wait_condition.inc
|
|
SET debug_sync = RESET;
|
|
|
|
--connection slave1
|
|
backup stage end;
|
|
|
|
--connection master
|
|
xa rollback 'x';
|
|
|
|
--sync_slave_with_master
|
|
|
|
--echo # Clean up.
|
|
--connection slave
|
|
--source include/stop_slave.inc
|
|
SET @@global.debug_dbug="";
|
|
SET @@global.slave_parallel_threads= @old_parallel_threads;
|
|
SET @@global.slave_parallel_mode = @old_parallel_mode;
|
|
|
|
--source include/start_slave.inc
|
|
|
|
--connection server_1
|
|
DROP TABLE t;
|
|
|
|
--source include/rpl_end.inc
|