From 8d8e819aae4466daeb832f9d7451b180a7526ce8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Canna=C3=B2?= Date: Sat, 15 Aug 2015 17:55:34 +0000 Subject: [PATCH] Bug fixes connect_cont() is called only if there is an event available a 1 second timeout is added for backend connection --- lib/mysql_connection.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/mysql_connection.cpp b/lib/mysql_connection.cpp index 58c4c7c55..e32c6e505 100644 --- a/lib/mysql_connection.cpp +++ b/lib/mysql_connection.cpp @@ -246,6 +246,8 @@ void MySQL_Connection::connect_start() { mysql=mysql_init(NULL); assert(mysql); mysql_options(mysql, MYSQL_OPT_NONBLOCK, 0); + unsigned int timeout= 1; + mysql_options(mysql, MYSQL_OPT_CONNECT_TIMEOUT, (void *)&timeout); const CHARSET_INFO * c = proxysql_find_charset_nr(mysql_thread___default_charset); if (!c) { proxy_error("Not existing charset number %u\n", mysql_thread___default_charset); @@ -362,7 +364,9 @@ handler_again: } break; case ASYNC_CONNECT_CONT: - connect_cont(event); + it (event) { + connect_cont(event); + } if (async_exit_status) { if (myds->sess->thread->curtime >= myds->wait_until) { NEXT_IMMEDIATE(ASYNC_CONNECT_TIMEOUT);