Add more error messages to monitors

When the execution of a query fails, the error reported by the Connector-C
and the server where the query was executed is logged.
This commit is contained in:
Markus Mäkelä
2017-08-02 20:56:54 +03:00
parent ab82c7455c
commit f7b8744460
7 changed files with 65 additions and 10 deletions

View File

@ -243,4 +243,11 @@ void mon_process_state_changes(MXS_MONITOR *monitor, const char *script, uint64_
*/ */
void mon_hangup_failed_servers(MXS_MONITOR *monitor); void mon_hangup_failed_servers(MXS_MONITOR *monitor);
/**
* @brief Report query errors
*
* @param db Database where the query failed
*/
void mon_report_query_error(MXS_MONITOR_SERVERS* db);
MXS_END_DECLS MXS_END_DECLS

View File

@ -1430,6 +1430,14 @@ void mon_hangup_failed_servers(MXS_MONITOR *monitor)
} }
} }
} }
void mon_report_query_error(MXS_MONITOR_SERVERS* db)
{
MXS_ERROR("Failed to execute query on server '%s' ([%s]:%d): %s",
db->server->unique_name, db->server->name,
db->server->port, mysql_error(db->con));
}
/** /**
* Acquire locks on all servers monitored by this monitor. There should * Acquire locks on all servers monitored by this monitor. There should
* only be max 1 monitor per server. * only be max 1 monitor per server.

View File

@ -79,10 +79,7 @@ void update_server_status(MXS_MONITOR *monitor, MXS_MONITOR_SERVERS *database)
} }
else else
{ {
MXS_ERROR("Failed to query server %s ([%s]:%d): %d, %s", mon_report_query_error(database);
database->server->unique_name, database->server->name,
database->server->port, mysql_errno(database->con),
mysql_error(database->con));
} }
} }
else else

View File

@ -311,10 +311,18 @@ monitorDatabase(MXS_MONITOR *mon, MXS_MONITOR_SERVERS *database)
} }
mysql_free_result(result2); mysql_free_result(result2);
} }
else
{
mon_report_query_error(database);
}
} }
} }
mysql_free_result(result); mysql_free_result(result);
} }
else
{
mon_report_query_error(database);
}
if (isjoined) if (isjoined)
{ {
@ -350,7 +358,10 @@ monitorDatabase(MXS_MONITOR *mon, MXS_MONITOR_SERVERS *database)
} }
mysql_free_result(result); mysql_free_result(result);
} }
else
{
mon_report_query_error(database);
}
server_set_status_nolock(&temp_server, SERVER_JOINED); server_set_status_nolock(&temp_server, SERVER_JOINED);
} }
else else
@ -786,9 +797,7 @@ static void update_sst_donor_nodes(MXS_MONITOR *mon, int is_cluster)
} }
else else
{ {
MXS_ERROR("Error while selecting 'wsrep_node_name' from node %s: %s", mon_report_query_error(ptr);
ptr->server->unique_name,
mysql_error(ptr->con));
} }
} }

View File

@ -283,7 +283,10 @@ monitorDatabase(MXS_MONITOR* mon, MXS_MONITOR_SERVERS *database)
} }
mysql_free_result(result); mysql_free_result(result);
} }
else
{
mon_report_query_error(database);
}
/* Check if the Slave_SQL_Running and Slave_IO_Running status is /* Check if the Slave_SQL_Running and Slave_IO_Running status is
* set to Yes * set to Yes
*/ */
@ -348,6 +351,10 @@ monitorDatabase(MXS_MONITOR* mon, MXS_MONITOR_SERVERS *database)
isslave = 0; isslave = 0;
} }
} }
else
{
mon_report_query_error(database);
}
} }
else else
{ {
@ -409,6 +416,10 @@ monitorDatabase(MXS_MONITOR* mon, MXS_MONITOR_SERVERS *database)
mysql_free_result(result); mysql_free_result(result);
} }
else
{
mon_report_query_error(database);
}
} }
/* get variable 'read_only' set by an external component */ /* get variable 'read_only' set by an external component */
@ -436,6 +447,10 @@ monitorDatabase(MXS_MONITOR* mon, MXS_MONITOR_SERVERS *database)
} }
mysql_free_result(result); mysql_free_result(result);
} }
else
{
mon_report_query_error(database);
}
/* Remove addition info */ /* Remove addition info */
monitor_clear_pending_status(database, SERVER_STALE_STATUS); monitor_clear_pending_status(database, SERVER_STALE_STATUS);

View File

@ -492,6 +492,10 @@ static inline void monitor_mysql_db(MXS_MONITOR_SERVERS* database, MYSQL_SERVER_
mysql_free_result(result); mysql_free_result(result);
} }
else
{
mon_report_query_error(database);
}
} }
/** /**
@ -544,7 +548,10 @@ static MXS_MONITOR_SERVERS *build_mysql51_replication_tree(MXS_MONITOR *mon)
mysql_free_result(result); mysql_free_result(result);
} }
else
{
mon_report_query_error(database);
}
/* Set the Slave Role */ /* Set the Slave Role */
if (ismaster) if (ismaster)
@ -718,6 +725,10 @@ monitorDatabase(MXS_MONITOR *mon, MXS_MONITOR_SERVERS *database)
} }
mysql_free_result(result); mysql_free_result(result);
} }
else
{
mon_report_query_error(database);
}
/* Check first for MariaDB 10.x.x and get status for multi-master replication */ /* Check first for MariaDB 10.x.x and get status for multi-master replication */
if (server_version >= 100000) if (server_version >= 100000)

View File

@ -245,6 +245,10 @@ monitorDatabase(MXS_MONITOR_SERVERS *database, char *defaultUser, char *defaultP
} }
mysql_free_result(result); mysql_free_result(result);
} }
else
{
mon_report_query_error(database);
}
/* Check the the SQL node id in the MySQL cluster */ /* Check the the SQL node id in the MySQL cluster */
if (mysql_query(database->con, "SHOW STATUS LIKE 'Ndb_cluster_node_id'") == 0 if (mysql_query(database->con, "SHOW STATUS LIKE 'Ndb_cluster_node_id'") == 0
@ -272,6 +276,10 @@ monitorDatabase(MXS_MONITOR_SERVERS *database, char *defaultUser, char *defaultP
} }
mysql_free_result(result); mysql_free_result(result);
} }
else
{
mon_report_query_error(database);
}
if (isjoined) if (isjoined)
{ {