Skip to content

Commit 7ec1aa3

Browse files
committed
Ensure that ping test clients are always disconnected after use. Don't assume that a good slave was found.
1 parent 8dd7deb commit 7ec1aa3

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

lib/redis/client.rb

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -584,15 +584,18 @@ def resolve_nearest_slave
584584
:port => slave["port"],
585585
:reconnect_attempts => 0
586586
)
587-
client.call [:ping]
588-
start = Time.now
589-
client.call [:ping]
590-
slave["response_time"] = (Time.now - start).to_f
591-
client.disconnect
587+
begin
588+
client.call [:ping]
589+
start = Time.now
590+
client.call [:ping]
591+
slave["response_time"] = (Time.now - start).to_f
592+
ensure
593+
client.disconnect
594+
end
592595
end
593596

594597
slave = ok_slaves.sort_by {|slave| slave["response_time"] }.first
595-
{:host => slave.fetch("ip"), :port => slave.fetch("port")}
598+
{:host => slave.fetch("ip"), :port => slave.fetch("port")} if slave
596599
end
597600
end
598601
end

0 commit comments

Comments
 (0)