1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-07 00:04:31 +03:00

MDEV-5938: Exec_master_log_pos not updated at log rotate in parallel replication

The code did not correctly handle the update of position for Rotate events in the
binlog/relaylog when using parallel replication.
This commit is contained in:
unknown
2014-04-09 14:42:46 +02:00
parent b1a1a79a69
commit 2480b60bb7
3 changed files with 68 additions and 5 deletions

View File

@@ -1495,7 +1495,6 @@ rpl_parallel::do_event(rpl_group_info *serial_rgi, Log_event *ev,
}
else if (!is_group_event)
{
my_off_t log_pos;
int err;
bool tmp;
/*
@@ -1509,7 +1508,13 @@ rpl_parallel::do_event(rpl_group_info *serial_rgi, Log_event *ev,
serial_rgi->is_parallel_exec= true;
err= rpt_handle_event(qev, NULL);
serial_rgi->is_parallel_exec= tmp;
log_pos= ev->log_pos;
if (ev->is_relay_log_event())
qev->future_event_master_log_pos= 0;
else if (typ == ROTATE_EVENT)
qev->future_event_master_log_pos=
(static_cast<Rotate_log_event *>(ev))->pos;
else
qev->future_event_master_log_pos= ev->log_pos;
delete_or_keep_event_post_apply(serial_rgi, typ, ev);
if (err)
@@ -1532,7 +1537,6 @@ rpl_parallel::do_event(rpl_group_info *serial_rgi, Log_event *ev,
the current point.
*/
qev->ev= NULL;
qev->future_event_master_log_pos= log_pos;
}
else
{