diff --git a/lib/MySQL_Session.cpp b/lib/MySQL_Session.cpp index dd59ee5dc..e1e87eac2 100644 --- a/lib/MySQL_Session.cpp +++ b/lib/MySQL_Session.cpp @@ -452,6 +452,7 @@ __get_pkts_from_client: mybe=find_or_create_backend(current_hostgroup); status=PROCESSING_QUERY; mybe->server_myds->connect_retries_on_failure=mysql_thread___connect_retries_on_failure; + mybe->server_myds->wait_until=0; pause_until=0; if (mysql_thread___default_query_delay) { pause_until=thread->curtime+mysql_thread___default_query_delay*1000; diff --git a/lib/mysql_connection.cpp b/lib/mysql_connection.cpp index 59e844e5c..e4c109a57 100644 --- a/lib/mysql_connection.cpp +++ b/lib/mysql_connection.cpp @@ -589,16 +589,19 @@ int MySQL_Connection::async_connect(short event) { assert(0); } if (async_state_machine==ASYNC_IDLE) { + myds->wait_until=0; return 0; } if (async_state_machine==ASYNC_CONNECT_SUCCESSFUL) { async_state_machine=ASYNC_IDLE; + myds->wait_until=0; return 0; } handler(event); switch (async_state_machine) { case ASYNC_CONNECT_SUCCESSFUL: async_state_machine=ASYNC_IDLE; + myds->wait_until=0; return 0; break; case ASYNC_CONNECT_FAILED: