mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
MDEV-3984: Double free of Master_info * when CHANGE MASTER fails.
When CHANGE MASTER fails, it may or may not have already added the Master_info * to the index. Implement logic that properly handles removal and freeing in both cases.
This commit is contained in:
@ -1,3 +1,7 @@
|
||||
change master 'abc' to relay_log_file='';
|
||||
ERROR HY000: Failed initializing relay log position: Could not find target log during relay log initialization
|
||||
change master 'abc2' to master_host='';
|
||||
ERROR HY000: Incorrect arguments to MASTER_HOST
|
||||
change master 'master1' to
|
||||
master_port=MYPORT_1,
|
||||
master_host='127.0.0.1',
|
||||
|
@ -8,6 +8,15 @@
|
||||
|
||||
--connect (slave,127.0.0.1,root,,,$SERVER_MYPORT_3)
|
||||
|
||||
# MDEV-3984: crash/read of freed memory when changing master with named connection
|
||||
# This fails after adding the new master 'abc', check we do not free twice.
|
||||
--error ER_RELAY_LOG_INIT
|
||||
change master 'abc' to relay_log_file='';
|
||||
# This fails before adding the new master, check that we do free it.
|
||||
--error ER_WRONG_ARGUMENTS
|
||||
change master 'abc2' to master_host='';
|
||||
|
||||
|
||||
# Start replication from the first master
|
||||
|
||||
--replace_result $SERVER_MYPORT_1 MYPORT_1
|
||||
|
Reference in New Issue
Block a user