mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
b97083dfc7
Compiling with debug and assigning an invalid directory to --slave-load-tmpdir was crashing the slave due to the following assertion DBUG_ASSERT(! is_set() || can_overwrite_status). This assertion assumes that a thread can change its state once (i.e. ok,error, etc) before aborting, cleaning/resuming or completing its execution unless the overwrite flag (i.e. can_overwrite_status) is true. The Append_block_log_event::do_apply_event which is responsible for creating temporary file(s) was not cleaning the thread state. Thus a failure while trying to create a file in an invalid temporary directory was causing the crash. To fix the problem we check if the temporary directory is valid before starting the SQL Thread and reset the thread state before creating a file in Append_block_log_event::do_apply_event.
19 lines
721 B
Text
19 lines
721 B
Text
stop slave;
|
|
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
reset master;
|
|
reset slave;
|
|
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
start slave;
|
|
create table t1(a int not null auto_increment, b int, primary key(a));
|
|
create table t2(a int not null auto_increment, b int, primary key(a)) engine=innodb;
|
|
load data infile '../../std_data/rpl_loaddata.dat' into table t1;
|
|
start transaction;
|
|
insert into t2(b) values (1);
|
|
insert into t2(b) values (2);
|
|
load data infile '../../std_data/rpl_loaddata.dat' into table t2;
|
|
load data infile '../../std_data/rpl_loaddata.dat' into table t2;
|
|
commit;
|
|
Comparing tables master:test.t1 and slave:test.t1
|
|
Comparing tables master:test.t2 and slave:test.t2
|
|
drop table t1;
|
|
drop table t2;
|