1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

Bug#29915479 RUNNING COM_REGISTER_SLAVE WITHOUT COM_BINLOG_DUMP CAN RESULTS IN SERVER EXIT

in fact, in MariaDB it cannot, but it can show spurious slaves
in SHOW SLAVE HOSTS.

slave was registered in COM_REGISTER_SLAVE and un-registered after
COM_BINLOG_DUMP. If there was no COM_BINLOG_DUMP, it would never
unregister.
This commit is contained in:
Sergei Golubchik
2020-04-28 14:59:47 +02:00
parent 8c534bdeb8
commit 6bb28e0bc5
5 changed files with 52 additions and 1 deletions

View File

@@ -0,0 +1,16 @@
include/master-slave.inc
[connection master]
set @old_dbug=@@global.debug_dbug;
set global debug_dbug='d,fail_com_register_slave';
stop slave;
reset slave;
include/wait_for_slave_to_stop.inc
start slave;
stop slave;
include/wait_for_slave_to_stop.inc
set global debug_dbug=@old_dbug;
kill DUMP_THREAD;
show slave hosts;
Server_id Host Port Master_id
start slave;
include/rpl_end.inc

View File

@@ -0,0 +1,33 @@
source include/have_debug.inc;
source include/have_binlog_format_mixed.inc;
source include/master-slave.inc;
connection slave;
set @old_dbug=@@global.debug_dbug;
set global debug_dbug='d,fail_com_register_slave';
stop slave;
reset slave;
source include/wait_for_slave_to_stop.inc;
start slave;
stop slave;
source include/wait_for_slave_to_stop.inc;
set global debug_dbug=@old_dbug;
connection master;
### why is that needed?
let $id=`SELECT id from information_schema.processlist where command='Binlog Dump'`;
if ($id) {
replace_result $id DUMP_THREAD;
eval kill $id;
let $wait_condition= SELECT count(*)=0 from information_schema.processlist where command='Binlog Dump';
source include/wait_condition.inc;
}
show slave hosts;
connection slave;
start slave;
source include/rpl_end.inc;