Skip to content

Commit

Permalink
MDEV-22722 Assertion "inited==NONE" failed in handler::ha_index_init …
Browse files Browse the repository at this point in the history
…on the slave during UPDATE

Add missing call for handler->prepare_for_insert() in Rows_log_event::do_apply_event
  • Loading branch information
mariadb-SachinSetiya committed Jun 11, 2020
1 parent 7e79853 commit 72776d4
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 0 deletions.
12 changes: 12 additions & 0 deletions mysql-test/main/long_unique_bugs_replication.result
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
include/master-slave.inc
[connection master]
create table t1 (i1 int, a1 text, unique key i1 (a1)) engine=myisam;
insert into t1 values (1,1);
insert into t1 values (2,2);
update t1 set a1 = 'd' limit 1;
update t1 set a1 = 'd2' where i1= 2;
connection slave;
connection slave;
connection master;
drop table t1;
include/rpl_end.inc
24 changes: 24 additions & 0 deletions mysql-test/main/long_unique_bugs_replication.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#
# Long unique bugs related to master slave replication
#

#
# MDEV-22722 Assertion "inited==NONE" failed in handler::ha_index_init on the slave during UPDATE
#

--source include/have_binlog_format_row.inc
--source include/master-slave.inc

create table t1 (i1 int, a1 text, unique key i1 (a1)) engine=myisam;
insert into t1 values (1,1);
insert into t1 values (2,2);
update t1 set a1 = 'd' limit 1;
update t1 set a1 = 'd2' where i1= 2;

sync_slave_with_master;
connection slave;

connection master;
drop table t1;

--source include/rpl_end.inc
2 changes: 2 additions & 0 deletions sql/log_event_server.cc
Original file line number Diff line number Diff line change
Expand Up @@ -5570,6 +5570,8 @@ int Rows_log_event::do_apply_event(rpl_group_info *rgi)
{
master_had_triggers= table->master_had_triggers;
bool transactional_table= table->file->has_transactions_and_rollback();
table->file->prepare_for_insert(get_genral_type_code() != WRITE_ROWS_EVENT);

/*
table == NULL means that this table should not be replicated
(this was set up by Table_map_log_event::do_apply_event()
Expand Down

0 comments on commit 72776d4

Please sign in to comment.