diff --git a/HISTORY b/HISTORY index 9a613e1..5d89bbe 100644 --- a/HISTORY +++ b/HISTORY @@ -1,4 +1,5 @@ Edge: +- Use a local array of servers - don't clear the main set (S. Christoffer Eliesen). - Fixing VersionError reference for Sphinx 0.9.9 or better (S. Christoffer Eliesen). - Consistent documentation for default port: 9312 (Aleksey Morozov). - Sphinx 2.0.4 support (Ilia Lobsanov). diff --git a/lib/riddle/client.rb b/lib/riddle/client.rb index e4a2402..f09c4a7 100644 --- a/lib/riddle/client.rb +++ b/lib/riddle/client.rb @@ -495,6 +495,8 @@ def close def open_socket raise "Already Connected" unless @socket.nil? + available_servers = servers.dup + if @timeout == 0 @socket = initialise_connection else @@ -502,8 +504,8 @@ def open_socket Timeout.timeout(@timeout) { @socket = initialise_connection } rescue Timeout::Error, Riddle::ConnectionError => e failed_servers ||= [] - failed_servers << servers.shift - retry if !servers.empty? + failed_servers << available_servers.shift + retry if !available_servers.empty? case e when Timeout::Error