Commit 312aec9e authored by tomas@whalegate.ndb.mysql.com's avatar tomas@whalegate.ndb.mysql.com
Browse files

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

- correction, do not insert GAP on first startup
parent 47a24555
Loading
Loading
Loading
Loading
+20 −2
Original line number Diff line number Diff line
@@ -3725,8 +3725,25 @@ pthread_handler_t ndb_binlog_thread_func(void *arg)
  /*
    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
      in the cluster while not being connected.
@@ -3739,8 +3756,9 @@ pthread_handler_t ndb_binlog_thread_func(void *arg)
    IF_DBUG(int error=)
      inj->record_incident(thd, INCIDENT_LOST_EVENTS, msg[incident_id]);
    DBUG_ASSERT(!error);
    incident_id= 1;
    break;
  }
  incident_id= 1;
  {
    thd->proc_info= "Waiting for ndbcluster to start";