From cd9f51149b9fa91c277198d7551c5df1d6272f15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Canna=C3=B2?= Date: Wed, 27 Jul 2016 23:23:02 +0000 Subject: [PATCH] Fixed 2 crashing bugs in Monitor Recente reimplementation of Monitor introduced 2 bugs: * trying to monitor a not existing hosts was erronously handled * if "SHOW SLAVE STATUS" retuns no row, a MySQL was sent twice to the connection pool --- lib/MySQL_Monitor.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/MySQL_Monitor.cpp b/lib/MySQL_Monitor.cpp index adfd23274..dcae05e01 100644 --- a/lib/MySQL_Monitor.cpp +++ b/lib/MySQL_Monitor.cpp @@ -556,7 +556,7 @@ void * monitor_read_only_thread(void *arg) { rc=mmsd->create_new_connection(); crc=true; if (rc==false) { - goto __exit_monitor_read_only_thread; + goto __fast_exit_monitor_read_only_thread; } } @@ -656,8 +656,10 @@ __exit_monitor_read_only_thread: if (mmsd->interr) { // check failed } else { if (crc==false) { - GloMyMon->My_Conn_Pool->put_connection(mmsd->hostname,mmsd->port,mmsd->mysql); - mmsd->mysql=NULL; + if (mmsd->mysql) { + GloMyMon->My_Conn_Pool->put_connection(mmsd->hostname,mmsd->port,mmsd->mysql); + mmsd->mysql=NULL; + } } } __fast_exit_monitor_read_only_thread: @@ -704,7 +706,7 @@ void * monitor_replication_lag_thread(void *arg) { rc=mmsd->create_new_connection(); crc=true; if (rc==false) { - goto __exit_monitor_replication_lag_thread; + goto __fast_exit_monitor_replication_lag_thread; } } @@ -813,8 +815,10 @@ __exit_monitor_replication_lag_thread: } if (mmsd->interr) { // check failed } else { - GloMyMon->My_Conn_Pool->put_connection(mmsd->hostname,mmsd->port,mmsd->mysql); - mmsd->mysql=NULL; + if (mmsd->mysql) { + GloMyMon->My_Conn_Pool->put_connection(mmsd->hostname,mmsd->port,mmsd->mysql); + mmsd->mysql=NULL; + } } __fast_exit_monitor_replication_lag_thread: if (mmsd->mysql) {