Commit 55d1645d authored by Nikita Malyavin's avatar Nikita Malyavin Committed by Sergei Golubchik

MDEV-31059 "Slave SQL" errors upon concurrent DML and erroneous ALTER

Skip more rpl-related error handling.
Also move the error check inside if (table) -- otherwise the error
should be handled already.
parent 3a42f286
......@@ -1364,6 +1364,7 @@ drop table t;
set debug_sync= reset;
disconnect con1;
disconnect con2;
NOT FOUND /Slave SQL/ in mysqld.1.err
#
# End of 11.2 tests
#
......@@ -1549,6 +1549,9 @@ drop table t;
set debug_sync= reset;
--disconnect con1
--disconnect con2
let SEARCH_FILE= $MYSQLTEST_VARDIR/log/mysqld.1.err;
let SEARCH_PATTERN= Slave SQL;
--source include/search_pattern_in_file.inc
--echo #
--echo # End of 11.2 tests
--echo #
......@@ -5218,26 +5218,29 @@ int Rows_log_event::do_apply_event(rpl_group_info *rgi)
thd->clear_error(1);
error= 0;
}
} // if (table)
if (unlikely(error))
{
if (rpl_data.is_online_alter())
goto err;
slave_rows_error_report(ERROR_LEVEL, error, rgi, thd, table,
get_type_str(),
RPL_LOG_NAME, log_pos);
/*
@todo We should probably not call
reset_current_stmt_binlog_format_row() from here.
if (unlikely(error))
{
slave_rows_error_report(ERROR_LEVEL, error, rgi, thd, table,
get_type_str(),
RPL_LOG_NAME, log_pos);
/*
@todo We should probably not call
reset_current_stmt_binlog_format_row() from here.
Note: this applies to log_event_old.cc too.
/Sven
*/
thd->reset_current_stmt_binlog_format_row();
thd->is_slave_error= 1;
/* remove trigger's tables */
goto err;
}
} // if (table)
Note: this applies to log_event_old.cc too.
/Sven
*/
thd->reset_current_stmt_binlog_format_row();
thd->is_slave_error= 1;
/* remove trigger's tables */
goto err;
}
DBUG_ASSERT(error == 0);
/*
Remove trigger's tables. In case of ONLINE ALTER TABLE, event doesn't own
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment