mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 11:01:52 +01:00
8cdb118a0a
- Calls to cleanup_load_tmpdir() could delete temporary files for another master connection - Concurrent LOAD DATA commands from two master connections could use the same file name Other bug fixes: - Enlarge buffer for connection names with 'special characters' one can't store in filenames Optimization: - Don't do 'lower case' of connection names. We can use cmp_connection_name, where we already have the connection name in lower case. mysql-test/suite/multi_source/load_data.result: Test case for MDEV-4352 mysql-test/suite/multi_source/load_data.test: Test case for MDEV-4352 sql/log_event.cc: Fixed: MDEV-4352 - Calls to cleanup_load_tmpdir() could delete temporary files for another master connection - Concurrent LOAD DATA commands from two master connections could use the same file name The fix was to add the connection name (if one exists) to all slave temporary files used by LOAD DATA sql/rpl_mi.cc: Enlarge buffer for connection names with 'special characters' one can't store in filenames Use mi->cmp_connection_name for connection file names. sql/rpl_rli.cc: Use mi->cmp_connection_name for connection file names. sql/slave.cc: Removed not needed empty line sql/sql_const.h: Added MAX_FILENAME_MBWIDTH to be able to calculate buffer length for connection_names stored in file names sql/sql_repl.cc: Use mi->cmp_connection_name for connection file names.
70 lines
1.8 KiB
Text
70 lines
1.8 KiB
Text
#
|
|
# Simple multi-master test
|
|
#
|
|
|
|
--source include/not_embedded.inc
|
|
--let $rpl_server_count= 0
|
|
|
|
--connect (slave,127.0.0.1,root,,,$SERVER_MYPORT_3)
|
|
--connect (master1,127.0.0.1,root,,,$SERVER_MYPORT_1)
|
|
--connect (master2,127.0.0.1,root,,,$SERVER_MYPORT_2)
|
|
--connection slave
|
|
|
|
--replace_result $SERVER_MYPORT_1 MYPORT_1
|
|
eval change master '' to master_port=$SERVER_MYPORT_1, master_host='127.0.0.1', master_user='root';
|
|
--replace_result $SERVER_MYPORT_2 MYPORT_2
|
|
eval change master 'master2' to master_port=$SERVER_MYPORT_2, master_host='127.0.0.1', master_user='root';
|
|
start all slaves;
|
|
|
|
set default_master_connection = '';
|
|
--source include/wait_for_slave_to_start.inc
|
|
set default_master_connection = 'master2';
|
|
--source include/wait_for_slave_to_start.inc
|
|
|
|
#
|
|
# Now test doing a load data infile from both connections
|
|
#
|
|
set default_master_connection = '';
|
|
--connection master1
|
|
create table t1 (a varchar(10) character set utf8);
|
|
load data infile '../../std_data/loaddata6.dat' into table t1;
|
|
--save_master_pos
|
|
--connection slave
|
|
--sync_with_master 0,''
|
|
--connection master2
|
|
create table t2 (a varchar(10) character set utf8);
|
|
load data infile '../../std_data/loaddata6.dat' into table t2;
|
|
--save_master_pos
|
|
--connection slave
|
|
--sync_with_master 0,'master2'
|
|
select count(*) from t1;
|
|
select count(*) from t2;
|
|
--connection master1
|
|
drop table t1;
|
|
--connection master2
|
|
drop table t2;
|
|
|
|
#
|
|
# clean up
|
|
#
|
|
|
|
--connection master1
|
|
--save_master_pos
|
|
--connection slave
|
|
--sync_with_master 0,''
|
|
--connection master2
|
|
--save_master_pos
|
|
--connection slave
|
|
--sync_with_master 0,'master2'
|
|
|
|
--connection slave
|
|
stop all slaves;
|
|
|
|
--source reset_master_slave.inc
|
|
--disconnect slave
|
|
--connection master1
|
|
--source reset_master_slave.inc
|
|
--disconnect master1
|
|
--connection master2
|
|
--source reset_master_slave.inc
|
|
--disconnect master2
|