MDEV-29816 rpl.rpl_parallel_29322 occasionally fails in BB

Make sure the old binlog dump thread is not still running when manipulating
binlog files; otherwise there is a small chance it will see an invalid
partial file and report an I/O error.

Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
This commit is contained in:
Kristian Nielsen 2023-11-24 07:38:16 +01:00
parent 1e80601b82
commit da9ffca908

View file

@ -66,6 +66,17 @@ if ($same_version_binlogs)
if (!$same_version_binlogs)
{
# Make sure the dump thread is gone before moving around binlog files. Else
# it might see an empty file and give error (MDEV-29816).
--let $dump_thrid= `Select id FROM information_schema.processlist WHERE Command='Binlog Dump'`
if ($dump_thrid) {
--disable_query_log
--error 0,ER_NO_SUCH_THREAD
eval KILL CONNECTION $dump_thrid;
--enable_query_log
--let $wait_condition= SELECT COUNT(*)=0 FROM information_schema.processlist WHERE Command='Binlog Dump'
--source include/wait_condition.inc
}
--move_file $datadir/master-bin.000002 $datadir/master-bin.000002.sav
--copy_file $MYSQL_TEST_DIR/std_data/mdev29078-mysql-bin.000001 $datadir/master-bin.000002
--exec $MYSQL_BINLOG --short-form $datadir/master-bin.000002