Fix for bug #714

Fix for bug #714
This commit is contained in:
MassimilianoPinto
2015-02-06 11:26:48 +01:00
parent 88db0aac90
commit 98cbc34c6c
3 changed files with 20 additions and 1 deletions

View File

@ -697,6 +697,12 @@ int rc;
* Successfully connected to backend. Assign file descriptor to dcb * Successfully connected to backend. Assign file descriptor to dcb
*/ */
dcb->fd = fd; dcb->fd = fd;
/**
* Add server pointer to dcb
*/
dcb->server = server;
/** Copy status field to DCB */ /** Copy status field to DCB */
dcb->dcb_server_status = server->status; dcb->dcb_server_status = server->status;
ss_debug(dcb->dcb_port = server->port;) ss_debug(dcb->dcb_port = server->port;)
@ -723,7 +729,7 @@ int rc;
*/ */
atomic_add(&server->stats.n_connections, 1); atomic_add(&server->stats.n_connections, 1);
atomic_add(&server->stats.n_current, 1); atomic_add(&server->stats.n_current, 1);
return dcb; return dcb;
} }

View File

@ -264,6 +264,7 @@ typedef struct dcb {
unsigned int high_water; /**< High water mark */ unsigned int high_water; /**< High water mark */
unsigned int low_water; /**< Low water mark */ unsigned int low_water; /**< Low water mark */
struct server *server; /**< The associated backend server */
#if defined(SS_DEBUG) #if defined(SS_DEBUG)
int dcb_port; /**< port of target server */ int dcb_port; /**< port of target server */
skygw_chk_t dcb_chk_tail; skygw_chk_t dcb_chk_tail;

View File

@ -220,6 +220,18 @@ int gw_read_backend_handshake(
"from backend. Error code: %d, Msg : %s", "from backend. Error code: %d, Msg : %s",
errcode, errcode,
bufstr))); bufstr)));
if (errcode == 1129) {
LOGIF(LE, (skygw_log_write_flush(
LOGFILE_ERROR,
"Server %s has been put into maintenance mode due to the server blocking connections from MaxScale. Run 'mysqladmin -h %s -P %d flush-hosts' on this server before taking this server out of maintenance mode.",
dcb->server->unique_name,
dcb->server->name,
dcb->server->port)));
server_set_status(dcb->server, SERVER_MAINT);
}
free(bufstr); free(bufstr);
} }