diff --git a/server/core/monitor.c b/server/core/monitor.c index 978c45a70..94f930a8a 100644 --- a/server/core/monitor.c +++ b/server/core/monitor.c @@ -330,7 +330,6 @@ void monitorRemoveServer(MONITOR *mon, SERVER *server) spinlock_acquire(&mon->lock); - ss_dassert(mon->databases); MONITOR_SERVERS *ptr = mon->databases; if (ptr->server == server) @@ -1109,12 +1108,9 @@ void mon_log_connect_error(MONITOR_SERVERS* database, connect_result_t rval) { MXS_ERROR(rval == MONITOR_CONN_TIMEOUT ? - "Monitor timed out when connecting to " - "server %s:%d : \"%s\"" : - "Monitor was unable to connect to " - "server %s:%d : \"%s\"", - database->server->name, - database->server->port, + "Monitor timed out when connecting to server %s:%d : \"%s\"" : + "Monitor was unable to connect to server %s:%d : \"%s\"", + database->server->name, database->server->port, mysql_error(database->con)); } diff --git a/server/core/service.c b/server/core/service.c index bd4e6dccf..bd2f596e1 100644 --- a/server/core/service.c +++ b/server/core/service.c @@ -1365,8 +1365,11 @@ void dprintService(DCB *dcb, SERVICE *service) dcb_printf(dcb, "\tBackend databases:\n"); while (server) { - dcb_printf(dcb, "\t\t%s:%d Protocol: %s\n", server->server->name, server->server->port, - server->server->protocol); + if (server->active && server->server->is_active) + { + dcb_printf(dcb, "\t\t%s:%d Protocol: %s\n", server->server->name, + server->server->port, server->server->protocol); + } server = server->next; } if (service->weightby) @@ -2201,7 +2204,7 @@ bool service_server_in_use(const SERVER *server) for (SERVER_REF *ref = service->dbref; ref && !rval; ref = ref->next) { - if (ref->server == server) + if (ref->active && ref->server == server) { rval = true; } diff --git a/server/modules/monitor/mysqlmon/mysql_mon.c b/server/modules/monitor/mysqlmon/mysql_mon.c index dbf19503f..eafd1c251 100644 --- a/server/modules/monitor/mysqlmon/mysql_mon.c +++ b/server/modules/monitor/mysqlmon/mysql_mon.c @@ -270,7 +270,6 @@ startMonitor(MONITOR *monitor, const CONFIG_PARAMETER* params) handle->replicationHeartbeat = 0; handle->detectStaleMaster = true; handle->detectStaleSlave = true; - handle->master = NULL; handle->script = NULL; handle->multimaster = false; handle->mysql51_replication = false; @@ -281,6 +280,9 @@ startMonitor(MONITOR *monitor, const CONFIG_PARAMETER* params) spinlock_init(&handle->lock); } + /** This should always be reset to NULL */ + handle->master = NULL; + while (params) { if (!strcmp(params->name, "detect_stale_master"))