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); CHK_SESSION(dcb->session);
if (dcb->session->client == NULL) { if (dcb->session->client == NULL) {
dcb->state = DCB_STATE_DISCONNECTED; 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; return 1;
} }
client_protocol = SESSION_PROTOCOL(dcb->session, MySQLProtocol); client_protocol = SESSION_PROTOCOL(dcb->session, MySQLProtocol);
} else { } 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; dcb->state = DCB_STATE_DISCONNECTED;
return 1; return 1;
} }

View File

@ -662,12 +662,19 @@ int gw_read_client_event(DCB* dcb) {
* no connected backends from %i\n", dcb->fd); */ * no connected backends from %i\n", dcb->fd); */
(dcb->func).close(dcb); (dcb->func).close(dcb);
} else { } else {
/* Send a custom error as MySQL command reply */ /* Send a custom error as MySQL command reply */
mysql_send_custom_error( if (dcb) {
dcb, mysql_send_custom_error(
1, dcb,
0, 1,
"Connection to backend lost"); 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; protocol->state = MYSQL_IDLE;
} }
rc = 1; rc = 1;

View File

@ -23,7 +23,7 @@
* Date Who Description * Date Who Description
* 17/06/2013 Massimiliano Pinto Common MySQL protocol routines * 17/06/2013 Massimiliano Pinto Common MySQL protocol routines
* 02/06/2013 Massimiliano Pinto MySQL connect asynchronous phases * 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; GWBUF *buf = NULL;
if (dcb == NULL) { ss_dassert(dcb != NULL);
return -1;
}
mysql_errno = 2003; mysql_errno = 2003;
mysql_error_msg = "An errorr occurred ..."; mysql_error_msg = "An errorr occurred ...";

View File

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