mirror of
https://github.com/MariaDB/server.git
synced 2025-10-22 19:52:58 +03:00
The crash appeared to be a result of allocating an instance of Discrete_interval
automatically that that was referred in out-of-declaration scope.
Fixed with correcting backing up and restoring scheme of
auto_inc_intervals_forced, introduced by bug#33029, by means of shallow copying;
added simulation code that forces executing those fixes of the former bug that
targeted at master-and-slave having incompatible bug#33029-prone versions.
mysql-test/suite/bugs/r/rpl_bug33029.result:
new results file
mysql-test/suite/bugs/t/rpl_bug33029.test:
test merely checks no crash happens on slave.
sql/slave.cc:
forcing to execute special logics implemented for bug#33029 if
simulate_bug33029 the debug option is set.
sql/sql_class.cc:
swaps of backed and the actual auto_inc_intervals_forced basing on shallow coping.
sql/structs.h:
Removing the deep _copy() and methods associated with it;
adding methods to Discrete_intervals_list:
private `=', copy constructor to prevent using;
private set_members();
public copy_shallow(), swap(), get_{head, tail, current}();
empty_no_free() through set_members().
26 lines
524 B
Plaintext
26 lines
524 B
Plaintext
#
|
|
# Bug #36443 Server crashes when executing insert when insert trigger on table
|
|
#
|
|
# Emulating the former bug#33029 situation to see that there is no crash anymore.
|
|
#
|
|
|
|
|
|
source include/master-slave.inc;
|
|
|
|
create table `t1` (`id` int not null auto_increment primary key);
|
|
create trigger `trg` before insert on `t1` for each row begin end;
|
|
|
|
sync_slave_with_master;
|
|
set @@global.debug="+d,simulate_bug33029";
|
|
|
|
stop slave;
|
|
start slave;
|
|
|
|
connection master;
|
|
|
|
insert into `t1` values ();
|
|
|
|
sync_slave_with_master;
|
|
select * from t1;
|
|
|