MXS-1490 Fix bug with gtid_io_pos change check

The conditional was opposite to intention.
This commit is contained in:
Esa Korhonen
2017-11-07 13:24:46 +02:00
parent a1a5947d61
commit 3a13469691

View File

@ -3129,10 +3129,10 @@ bool failover_wait_relay_log(MYSQL_MONITOR* mon, MXS_MONITORED_SERVER* new_maste
MySqlServerInfo* master_info = get_server_info(mon, new_master); MySqlServerInfo* master_info = get_server_info(mon, new_master);
time_t begin = time(NULL); time_t begin = time(NULL);
bool query_ok = true; bool query_ok = true;
bool io_pos_changed = false; bool io_pos_stable = true;
while (master_info->relay_log_events() > 0 && while (master_info->relay_log_events() > 0 &&
query_ok && query_ok &&
!io_pos_changed && io_pos_stable &&
difftime(time(NULL), begin) < mon->failover_timeout) difftime(time(NULL), begin) < mon->failover_timeout)
{ {
MXS_NOTICE("Failover: Relay log of server '%s' not yet empty, waiting to clear %" PRId64 " events.", MXS_NOTICE("Failover: Relay log of server '%s' not yet empty, waiting to clear %" PRId64 " events.",
@ -3142,7 +3142,7 @@ bool failover_wait_relay_log(MYSQL_MONITOR* mon, MXS_MONITORED_SERVER* new_maste
Gtid old_gtid_io_pos = master_info->slave_status.gtid_io_pos; Gtid old_gtid_io_pos = master_info->slave_status.gtid_io_pos;
query_ok = do_show_slave_status(master_info, new_master, MYSQL_SERVER_VERSION_100) && query_ok = do_show_slave_status(master_info, new_master, MYSQL_SERVER_VERSION_100) &&
update_gtid_slave_pos(new_master, old_gtid_io_pos.domain, master_info); update_gtid_slave_pos(new_master, old_gtid_io_pos.domain, master_info);
io_pos_changed = (old_gtid_io_pos == master_info->slave_status.gtid_io_pos); io_pos_stable = (old_gtid_io_pos == master_info->slave_status.gtid_io_pos);
} }
bool rval = false; bool rval = false;
@ -3157,7 +3157,7 @@ bool failover_wait_relay_log(MYSQL_MONITOR* mon, MXS_MONITORED_SERVER* new_maste
{ {
reason = "Query error"; reason = "Query error";
} }
else if (io_pos_changed) else if (!io_pos_stable)
{ {
reason = "Old master sent new event(s)"; reason = "Old master sent new event(s)";
} }