From 820dd6357e2f39939f2315af203f03cc264fe8f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Canna=C3=B2?= Date: Mon, 25 Apr 2016 05:54:40 +0000 Subject: [PATCH] Fixed major bug introduced in #545 The math was balancing connections was incorrect --- lib/MySQL_HostGroups_Manager.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/MySQL_HostGroups_Manager.cpp b/lib/MySQL_HostGroups_Manager.cpp index 20eef1e04..c2aa11705 100644 --- a/lib/MySQL_HostGroups_Manager.cpp +++ b/lib/MySQL_HostGroups_Manager.cpp @@ -682,7 +682,7 @@ MySrvC *MyHGC::get_random_MySrvC() { if (mysrvc->status==MYSQL_SERVER_STATUS_ONLINE) { // consider this server only if ONLINE unsigned int len=mysrvc->ConnectionsUsed->conns->len; if (len < mysrvc->max_connections) { // consider this server only if didn't reach max_connections - if ((len * sum) <= (New_TotalUsedConn * mysrvc->weight * 1.5 + 1)) { + if ((len * sum) <= (TotalUsedConn * mysrvc->weight * 1.5 + 1)) { New_sum+=mysrvc->weight; New_TotalUsedConn+=len; } @@ -704,7 +704,7 @@ MySrvC *MyHGC::get_random_MySrvC() { if (mysrvc->status==MYSQL_SERVER_STATUS_ONLINE) { // consider this server only if ONLINE unsigned int len=mysrvc->ConnectionsUsed->conns->len; if (len < mysrvc->max_connections) { // consider this server only if didn't reach max_connections - if ((len * sum) <= (New_TotalUsedConn * mysrvc->weight * 1.5 + 1)) { + if ((len * sum) <= (TotalUsedConn * mysrvc->weight * 1.5 + 1)) { New_sum+=mysrvc->weight; if (k<=New_sum) { proxy_debug(PROXY_DEBUG_MYSQL_CONNPOOL, 7, "Returning MySrvC %p, server %s:%d\n", mysrvc, mysrvc->address, mysrvc->port);