Merge branch 'develop' of github.com:skysql/MaxScale into develop

This commit is contained in:
Mark Riddoch 2014-05-28 23:39:17 +01:00
commit f84e2b0dae
2 changed files with 30 additions and 21 deletions

View File

@ -282,7 +282,8 @@ static int gw_read_backend_event(DCB *dcb) {
} /* switch */
}
if (backend_protocol->state == MYSQL_AUTH_FAILED) {
if (backend_protocol->state == MYSQL_AUTH_FAILED)
{
/**
* protocol state won't change anymore,
* lock can be freed
@ -326,14 +327,14 @@ static int gw_read_backend_event(DCB *dcb) {
if (session->client->session == NULL)
{
rc = 1;
goto return_with_lock;
goto return_rc;
}
usleep(1);
}
if (session->state == SESSION_STATE_STOPPING)
{
goto return_with_lock;
goto return_rc;
}
spinlock_acquire(&session->ses_lock);
session->state = SESSION_STATE_STOPPING;
@ -584,7 +585,8 @@ gw_MySQLWrite_backend(DCB *dcb, GWBUF *queue)
snprintf(str, len+1, "%s", startpoint);
LOGIF(LE, (skygw_log_write_flush(
LOGFILE_ERROR,
"Error : Authentication to backend failed.")));
"Error : Unable to write to backend due to "
"authentication failure.")));
/** Consume query buffer */
while ((queue = gwbuf_consume(
queue,

View File

@ -1015,16 +1015,16 @@ static int routeQuery(
router_cli_ses->rses_id)));
ss_dassert(QUERY_IS_TYPE(qtype, QUERY_TYPE_READ));
/** Lock router session */
if (!rses_begin_locked_router_action(router_cli_ses))
{
goto return_ret;
}
succp = get_dcb(&slave_dcb, router_cli_ses, BE_SLAVE);
if (succp)
{
/** Lock router session */
if (!rses_begin_locked_router_action(router_cli_ses))
{
goto return_ret;
}
{
if ((ret = slave_dcb->func.write(slave_dcb, querybuf)) == 1)
{
atomic_add(&inst->stats.n_slave, 1);
@ -1036,8 +1036,9 @@ static int routeQuery(
"Error : Routing query \"%s\" failed.",
querystr)));
}
rses_end_locked_router_action(router_cli_ses);
}
rses_end_locked_router_action(router_cli_ses);
ss_dassert(succp);
goto return_ret;
}
@ -1061,6 +1062,11 @@ static int routeQuery(
"routing to Master.")));
}
}
/** Lock router session */
if (!rses_begin_locked_router_action(router_cli_ses))
{
goto return_ret;
}
if (master_dcb == NULL)
{
@ -1068,21 +1074,22 @@ static int routeQuery(
}
if (succp)
{
/** Lock router session */
if (!rses_begin_locked_router_action(router_cli_ses))
{
goto return_ret;
}
if ((ret = master_dcb->func.write(master_dcb, querybuf)) == 1)
{
atomic_add(&inst->stats.n_master, 1);
}
rses_end_locked_router_action(router_cli_ses);
}
}
rses_end_locked_router_action(router_cli_ses);
ss_dassert(succp);
ss_dassert(ret == 1);
goto return_ret;
if (ret == 0)
{
LOGIF(LE, (skygw_log_write_flush(
LOGFILE_ERROR,
"Error : Routing to master failed.")));
}
}
return_ret:
if (plainsqlbuf != NULL)