The test environment is like below .
[os]
debian6
[ruby]
ruby 1.8.7 (2010-08-16 patchlevel 302) [i486-linux]
[ruby lib.]
thrift-0.8.0
thrift_client-0.8.1
flockdb-0.7.1
gizzmo-0.13.1
The problem is occurred when i type "flock.select(nill, : follows, 1).to_a on an irb prompt.
I attach the result at the end of this question.
But sometimes the statement is success.
So i changed some part of [/var/lib/gems/1.8/gems/flockdb-0.7.1/lib/flock/service.rb]
from " DEFAULTS = { :transport_wrapper => Thrift::BufferedTransport, :connect_timeout => 0.5 } "
to "DEFAULTS = {:transport_wrapper => Thrift::FramedTransport, :retries => 5, :connect_timeout => 5 }"
But i still am seeing this strange situation.
irb(main):023:0> flock.select(nil, :follows, 1).to_a
ThriftClient::NoServersAvailable: No live servers in [#] since nil.
from /var/lib/gems/1.8/gems/thrift_client-0.8.1/lib/thrift_client/abstract_thrift_client.rb:138:in next_live_server'
connect!'
from /var/lib/gems/1.8/gems/thrift_client-0.8.1/lib/thrift_client/abstract_thrift_client.rb:103:in
from /var/lib/gems/1.8/gems/thrift_client-0.8.1/lib/thrift_client/abstract_thrift_client.rb:144:in handled_proxy'
select'
from /var/lib/gems/1.8/gems/thrift_client-0.8.1/lib/thrift_client/abstract_thrift_client.rb:60:in
from /var/lib/gems/1.8/gems/flockdb-0.7.1/lib/flock/operations/select_operation.rb:31:in get_results'
operation'
from /var/lib/gems/1.8/gems/flockdb-0.7.1/lib/flock/operations/select_operation.rb:40:in
from /var/lib/gems/1.8/gems/flockdb-0.7.1/lib/flock/operation.rb:48:in call'
get_results'
from /var/lib/gems/1.8/gems/flockdb-0.7.1/lib/flock/operation.rb:48:in
from /var/lib/gems/1.8/gems/flockdb-0.7.1/lib/flock/operation.rb:22:in current_page'
next?'
from /var/lib/gems/1.8/gems/flockdb-0.7.1/lib/flock/operation.rb:77:in
from /var/lib/gems/1.8/gems/flockdb-0.7.1/lib/flock/operation.rb:62:in each'
each'
from /var/lib/gems/1.8/gems/flockdb-0.7.1/lib/flock/operations/select_operation.rb:4:in
from (irb):23:in to_a'
next_live_server'
from (irb):23
from :0
irb(main):024:0> flock.select(nil, :follows, 1).to_a
=> [23, 22, 18, 20]
irb(main):025:0> flock.select(nil, :follows, 1).to_a
=> [23, 22, 18, 20]
irb(main):026:0> flock.select(nil, :follows, 1).to_a
=> [15, 23, 22, 18, 20]
irb(main):027:0> flock.select(nil, :follows, 1).to_a
=> [15, 23, 22, 18, 20]
irb(main):028:0> flock.select(nil, :follows, 1).to_a
=> [15, 23, 22, 18, 20]
irb(main):029:0> flock.select(nil, :follows, 1).to_a
=> [15, 23, 22, 18, 20]
irb(main):030:0> flock.select(nil, :follows, 1).to_a
=> [15, 23, 22, 18, 20]
irb(main):031:0> flock.select(nil, :follows, 1).to_a
=> [15, 23, 22, 18, 20]
irb(main):032:0> flock.select(nil, :follows, 1).to_a
=> [15, 23, 22, 18, 20]
irb(main):033:0> flock.select(nil, :follows, 1).to_a
=> [15, 23, 22, 18, 20]
irb(main):034:0> flock.select(nil, :follows, 2).to_a
=> []
irb(main):035:0> flock.select(nil, :follows, 3).to_a
=> [18, 11]
irb(main):036:0> flock.select(nil, :follows, 1).to_a
ThriftClient::NoServersAvailable: No live servers in
[#<AbstractThriftClient::Server:0xb7338f6c @marked_down_at=Tue Aug 07
20:29:19 +0900 2012, @connection_string="localhost:7915">] since
nil.
from /var/lib/gems/1.8/gems/thrift_client-0.8.1/lib/thrift_client/abstract_thrift_client.rb:138:in
from /var/lib/gems/1.8/gems/thrift_client-0.8.1/lib/thrift_client/abstract_thrift_client.rb:103:in connect!'
handled_proxy'
from /var/lib/gems/1.8/gems/thrift_client-0.8.1/lib/thrift_client/abstract_thrift_client.rb:144:in
from /var/lib/gems/1.8/gems/thrift_client-0.8.1/lib/thrift_client/abstract_thrift_client.rb:60:in select'
get_results'
from /var/lib/gems/1.8/gems/flockdb-0.7.1/lib/flock/operations/select_operation.rb:31:in
from /var/lib/gems/1.8/gems/flockdb-0.7.1/lib/flock/operations/select_operation.rb:40:in operation'
call'
from /var/lib/gems/1.8/gems/flockdb-0.7.1/lib/flock/operation.rb:48:in
from /var/lib/gems/1.8/gems/flockdb-0.7.1/lib/flock/operation.rb:48:in get_results'
current_page'
from /var/lib/gems/1.8/gems/flockdb-0.7.1/lib/flock/operation.rb:22:in
from /var/lib/gems/1.8/gems/flockdb-0.7.1/lib/flock/operation.rb:77:in next?'
each'
from /var/lib/gems/1.8/gems/flockdb-0.7.1/lib/flock/operation.rb:62:in
from /var/lib/gems/1.8/gems/flockdb-0.7.1/lib/flock/operations/select_operation.rb:4:in each'
to_a'
from (irb):36:in
from (irb):36
from :0
irb(main):037:0>