Added log error or ss_dassert instead of silent returning

This commit is contained in:
Massimiliano Pinto
2013-09-04 15:31:04 +02:00
parent 5c48239372
commit b01cf2365e
4 changed files with 30 additions and 13 deletions

View File

@ -152,10 +152,21 @@ static int gw_read_backend_event(DCB *dcb) {
CHK_SESSION(dcb->session);
if (dcb->session->client == NULL) {
dcb->state = DCB_STATE_DISCONNECTED;
skygw_log_write(
LOGFILE_ERROR,
"%lu [gw_read_backend_event] client dcb is NULL for backend dcb %d.",
pthread_self(),
dcb->fd);
dcb->state = DCB_STATE_DISCONNECTED;
return 1;
}
client_protocol = SESSION_PROTOCOL(dcb->session, MySQLProtocol);
} else {
skygw_log_write(
LOGFILE_ERROR,
"%lu [gw_read_backend_event] dcb->session is NULL for backend dcb %d.",
pthread_self(),
dcb->fd);
dcb->state = DCB_STATE_DISCONNECTED;
return 1;
}

View File

@ -663,11 +663,18 @@ int gw_read_client_event(DCB* dcb) {
(dcb->func).close(dcb);
} else {
/* Send a custom error as MySQL command reply */
if (dcb) {
mysql_send_custom_error(
dcb,
1,
0,
"Connection to backend lost");
} else {
skygw_log_write(
LOGFILE_ERROR,
"%lu [mysql_send_custom_error] client dcb is NULL.",
pthread_self());
}
protocol->state = MYSQL_IDLE;
}
rc = 1;

View File

@ -23,7 +23,7 @@
* Date Who Description
* 17/06/2013 Massimiliano Pinto Common MySQL protocol routines
* 02/06/2013 Massimiliano Pinto MySQL connect asynchronous phases
* 04/09/2013 Massimiliano Pinto Added dcb NULL check in mysql_send_custom_error
* 04/09/2013 Massimiliano Pinto Added dcb NULL assert in mysql_send_custom_error
*
*/
@ -620,9 +620,7 @@ mysql_send_custom_error (DCB *dcb, int packet_number, int in_affected_rows, cons
GWBUF *buf = NULL;
if (dcb == NULL) {
return -1;
}
ss_dassert(dcb != NULL);
mysql_errno = 2003;
mysql_error_msg = "An errorr occurred ...";

View File

@ -523,8 +523,9 @@ clientReply(
DCB *client = NULL;
client = backend_dcb->session->client;
if (client) {
ss_dassert(client != NULL);
client->func.write(client, queue);
}
}
///