Skip to content

Commit c11303b

Browse files
committed
Servers were incorrectly brought back online
Fix issue #566 Regression introducted in #531
1 parent d376710 commit c11303b

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

lib/MySQL_HostGroups_Manager.cpp

+14-9
Original file line numberDiff line numberDiff line change
@@ -674,15 +674,20 @@ MySrvC *MyHGC::get_random_MySrvC() {
674674
if (max_wait_sec < 1) { // min wait time should be at least 1 second
675675
max_wait_sec = 1;
676676
}
677-
if ((t - mysrvc->time_last_detected_error) > max_wait_sec) {
678-
mysrvc->status=MYSQL_SERVER_STATUS_ONLINE;
679-
mysrvc->shunned_automatic=false;
680-
mysrvc->connect_ERR_at_time_last_detected_error=0;
681-
mysrvc->time_last_detected_error=0;
682-
// if a server is taken back online, consider it immediately
683-
if ( mysrvc->current_latency_us < ( mysrvc->max_latency_us ? mysrvc->max_latency_us : mysql_thread___default_max_latency_ms*1000 ) ) { // consider the host only if not too far
684-
sum+=mysrvc->weight;
685-
TotalUsedConn+=mysrvc->ConnectionsUsed->conns->len;
677+
for (j=0; j<l; j++) {
678+
mysrvc=mysrvs->idx(j);
679+
if (mysrvc->status==MYSQL_SERVER_STATUS_SHUNNED && mysrvc->shunned_automatic==true) {
680+
if ((t - mysrvc->time_last_detected_error) > max_wait_sec) {
681+
mysrvc->status=MYSQL_SERVER_STATUS_ONLINE;
682+
mysrvc->shunned_automatic=false;
683+
mysrvc->connect_ERR_at_time_last_detected_error=0;
684+
mysrvc->time_last_detected_error=0;
685+
// if a server is taken back online, consider it immediately
686+
if ( mysrvc->current_latency_us < ( mysrvc->max_latency_us ? mysrvc->max_latency_us : mysql_thread___default_max_latency_ms*1000 ) ) { // consider the host only if not too far
687+
sum+=mysrvc->weight;
688+
TotalUsedConn+=mysrvc->ConnectionsUsed->conns->len;
689+
}
690+
}
686691
}
687692
}
688693
}

0 commit comments

Comments
 (0)