Fixed client hangups if the first response to a SHOW DATABASES query was sent too fast.
This commit is contained in:
@ -797,6 +797,7 @@ static void* newSession(
|
|||||||
client_rses->dcb_route->func.read = internalRoute;
|
client_rses->dcb_route->func.read = internalRoute;
|
||||||
client_rses->dcb_route->state = DCB_STATE_POLLING;
|
client_rses->dcb_route->state = DCB_STATE_POLLING;
|
||||||
client_rses->dcb_route->session = session;
|
client_rses->dcb_route->session = session;
|
||||||
|
client_rses->init = INIT_MAPPING;
|
||||||
if(using_db)
|
if(using_db)
|
||||||
client_rses->init |= INIT_USE_DB;
|
client_rses->init |= INIT_USE_DB;
|
||||||
/**
|
/**
|
||||||
@ -908,8 +909,7 @@ static void* newSession(
|
|||||||
strncpy(client_rses->connect_db,db,MYSQL_DATABASE_MAXLEN+1);
|
strncpy(client_rses->connect_db,db,MYSQL_DATABASE_MAXLEN+1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Generate database list */
|
|
||||||
gen_databaselist(router,client_rses);
|
|
||||||
rses_end_locked_router_action(client_rses);
|
rses_end_locked_router_action(client_rses);
|
||||||
|
|
||||||
|
|
||||||
@ -1648,6 +1648,9 @@ static int routeQuery(
|
|||||||
|
|
||||||
if(!rses_is_closed && router_cli_ses->init != INIT_READY)
|
if(!rses_is_closed && router_cli_ses->init != INIT_READY)
|
||||||
{
|
{
|
||||||
|
/* Generate database list */
|
||||||
|
gen_databaselist(inst,router_cli_ses);
|
||||||
|
|
||||||
char* querystr = modutil_get_SQL(querybuf);
|
char* querystr = modutil_get_SQL(querybuf);
|
||||||
skygw_log_write(LOGFILE_DEBUG,"dbshard: Storing query for session %p: %s",
|
skygw_log_write(LOGFILE_DEBUG,"dbshard: Storing query for session %p: %s",
|
||||||
router_cli_ses->rses_client_dcb->session,
|
router_cli_ses->rses_client_dcb->session,
|
||||||
|
Reference in New Issue
Block a user