Bug #78742 Issue with destination server removal from quarantine
Submitted: 7 Oct 2015 20:19 Modified: 20 Oct 2015 2:14
Reporter: Jorge Jordao Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Router Severity:S3 (Non-critical)
Version:2.0.1 OS:Any
Assigned to: CPU Architecture:Any

[7 Oct 2015 20:19] Jorge Jordao
Description:
Servers are not being properly removed from quarantine.

In routing/destination.cc,

void RouteDestination::remove_from_quarantine() noexcept {
  while(!stopping_) {
    ...
    for (auto it = quarantined_.begin(); it != quarantined_.end() && !quarantined_.empty(); ++it) {
      ...
      if (...) {
        ...
        quarantined_.erase(it);
        ...
      }
    }
    ...
  }
}

Elements are being removed from the quarantined_ list, while that list is being iterated.

How to repeat:
N/A
[20 Oct 2015 2:14] Philip Olson
Posted by developer:
 
Fixed as of the upcoming MySQL Router 2.0.2 release, and here's the changelog entry:

Fixed the removal of servers from quarantine. router now properly exits
when reaching the end of the list, when all servers are in quarantine.

Thank you for the bug report.