|
|
|
|
@ -3114,10 +3114,15 @@ void MySQL_HostGroups_Manager::destroy_MyConn_from_pool(MySQL_Connection *c, boo
|
|
|
|
|
if (mysrvc->status==MYSQL_SERVER_STATUS_ONLINE && c->send_quit && queue.size() < __sync_fetch_and_add(&GloMTH->variables.connpoll_reset_queue_length,0)) {
|
|
|
|
|
if (c->async_state_machine==ASYNC_IDLE) {
|
|
|
|
|
// overall, the backend seems healthy and so it is the connection. Try to reset it
|
|
|
|
|
proxy_debug(PROXY_DEBUG_MYSQL_CONNPOOL, 7, "Trying to reset MySQL_Connection %p, server %s:%d\n", c, mysrvc->address, mysrvc->port);
|
|
|
|
|
to_del=false;
|
|
|
|
|
//c->userinfo->set(mysql_thread___monitor_username,mysql_thread___monitor_password,mysql_thread___default_schema,NULL);
|
|
|
|
|
queue.add(c);
|
|
|
|
|
int myerr=mysql_errno(c->mysql);
|
|
|
|
|
if (myerr >= 2000 && myerr < 3000) {
|
|
|
|
|
// client library error . We must not try to save the connection
|
|
|
|
|
proxy_debug(PROXY_DEBUG_MYSQL_CONNPOOL, 7, "Not trying to reset MySQL_Connection %p, server %s:%d . Error code %d\n", c, mysrvc->address, mysrvc->port, myerr);
|
|
|
|
|
} else {
|
|
|
|
|
proxy_debug(PROXY_DEBUG_MYSQL_CONNPOOL, 7, "Trying to reset MySQL_Connection %p, server %s:%d\n", c, mysrvc->address, mysrvc->port);
|
|
|
|
|
to_del=false;
|
|
|
|
|
queue.add(c);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
// the connection seems health, but we are trying to destroy it
|
|
|
|
|
// probably because there is a long running query
|
|
|
|
|
|