Bug #21494 Master Cluster MySQLD is point of failure that can lead to mismatch slave data

- insert gap event on cluster connect
parent 81ac116d
...@@ -3589,6 +3589,14 @@ restart: ...@@ -3589,6 +3589,14 @@ restart:
/* /*
Main NDB Injector loop Main NDB Injector loop
*/ */
{
/*
Always insert a GAP event as we cannot know what has happened in the cluster
while not being connected.
*/
LEX_STRING const msg= { C_STRING_WITH_LEN("Cluster connect") };
inj->record_incident(thd, INCIDENT_LOST_EVENTS, msg);
}
{ {
thd->proc_info= "Waiting for ndbcluster to start"; thd->proc_info= "Waiting for ndbcluster to start";
......
...@@ -198,7 +198,7 @@ int injector::record_incident(THD *thd, Incident incident) ...@@ -198,7 +198,7 @@ int injector::record_incident(THD *thd, Incident incident)
return 0; return 0;
} }
int injector::record_incident(THD *thd, Incident incident, LEX_STRING message) int injector::record_incident(THD *thd, Incident incident, LEX_STRING const message)
{ {
Incident_log_event ev(thd, incident, message); Incident_log_event ev(thd, incident, message);
if (int error= mysql_bin_log.write(&ev)) if (int error= mysql_bin_log.write(&ev))
......
...@@ -324,7 +324,7 @@ public: ...@@ -324,7 +324,7 @@ public:
void new_trans(THD *, transaction *); void new_trans(THD *, transaction *);
int record_incident(THD*, Incident incident); int record_incident(THD*, Incident incident);
int record_incident(THD*, Incident incident, LEX_STRING message); int record_incident(THD*, Incident incident, LEX_STRING const message);
private: private:
explicit injector(); explicit injector();
......
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