Bug #31484 Cluster LOST_EVENTS entry not added to binlog on mysqld restart

- correction, do not insert GAP on first startup
parent 47a24555
...@@ -3725,8 +3725,25 @@ pthread_handler_t ndb_binlog_thread_func(void *arg) ...@@ -3725,8 +3725,25 @@ pthread_handler_t ndb_binlog_thread_func(void *arg)
/* /*
Main NDB Injector loop Main NDB Injector loop
*/ */
if (ndb_binlog_running) while (ndb_binlog_running)
{ {
/*
check if it is the first log, if so we do not insert a GAP event
as there is really no log to have a GAP in
*/
{
LOG_INFO log_info;
mysql_bin_log.get_current_log(&log_info);
int len= strlen(log_info.log_file_name);
uint no= 0;
if ((sscanf(log_info.log_file_name + len - 6, "%u", &no) == 1) &&
no == 1)
{
/* this is the fist log, so skip GAP event */
break;
}
}
/* /*
Always insert a GAP event as we cannot know what has happened Always insert a GAP event as we cannot know what has happened
in the cluster while not being connected. in the cluster while not being connected.
...@@ -3739,8 +3756,9 @@ pthread_handler_t ndb_binlog_thread_func(void *arg) ...@@ -3739,8 +3756,9 @@ pthread_handler_t ndb_binlog_thread_func(void *arg)
IF_DBUG(int error=) IF_DBUG(int error=)
inj->record_incident(thd, INCIDENT_LOST_EVENTS, msg[incident_id]); inj->record_incident(thd, INCIDENT_LOST_EVENTS, msg[incident_id]);
DBUG_ASSERT(!error); DBUG_ASSERT(!error);
incident_id= 1; break;
} }
incident_id= 1;
{ {
thd->proc_info= "Waiting for ndbcluster to start"; thd->proc_info= "Waiting for ndbcluster to start";
......
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