Commit e84f5356 authored by Sachin Setiya's avatar Sachin Setiya

MDEV-12290 Wrong timestamps in binary log causes replication issues

Binlog_background_thread does not make a call to set_time(), And when
we call binlog_checkpoint_log_event->write() , we write the wrong timestamp.
In this patch we correct this by calling thd->set_time().
parent 378beed0
...@@ -9278,7 +9278,9 @@ binlog_background_thread(void *arg __attribute__((unused))) ...@@ -9278,7 +9278,9 @@ binlog_background_thread(void *arg __attribute__((unused)))
while (queue) while (queue)
{ {
THD_STAGE_INFO(thd, stage_binlog_processing_checkpoint_notify); THD_STAGE_INFO(thd, stage_binlog_processing_checkpoint_notify);
DEBUG_SYNC(current_thd, "binlog_background_thread_before_mark_xid_done"); DEBUG_SYNC(thd, "binlog_background_thread_before_mark_xid_done");
/* Set the thread start time */
thd->set_time();
/* Grab next pointer first, as mark_xid_done() may free the element. */ /* Grab next pointer first, as mark_xid_done() may free the element. */
next= queue->next_in_queue; next= queue->next_in_queue;
mysql_bin_log.mark_xid_done(queue->binlog_id, true); mysql_bin_log.mark_xid_done(queue->binlog_id, true);
......
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