twitter / thrift_client

A Thrift client wrapper that encapsulates some common failover behavior
http://github.com/twitter/thrift_client
Apache License 2.0
196 stars 83 forks source link

Nil exception happening after connection is open for a while #42

Open ianloblaw opened 12 years ago

ianloblaw commented 12 years ago

Hello,

Recently I was trying to run version 0.8.2 to connect to scribe, after a few hours I noticed that the connection dies (seemingly on the ruby end) and results in the following exception

undefined method write' for nil:NilClass ruby/1.9.1/gems/thrift_client-0.8.2/lib/thrift_client/server.rb:82:inwrite' ruby/1.9.1/gems/thrift-0.8.0/lib/thrift/protocol/binary_protocol.rb:91:in write_i16' ruby/1.9.1/gems/thrift-0.8.0/lib/thrift/protocol/binary_protocol.rb:43:inwrite_message_begin' ruby/1.9.1/gems/thrift-0.8.0/lib/thrift/client.rb:29:in `send_message'

This seems to be related to line 60 of server.rb

return nil unless @connection

Unfortunately I haven't figured out why the connection is becoming nil, but it seems to be internal to the gem.

I am not sure if the closing of the connection is expected behavior or not, but I think anyone can agree that exception's relating to calls on nil aren't a sensible way dealing with an error case.

kbrock commented 11 years ago

I'm seeing this too. Am running jruby, which may be a culpret as well

@ianloblaw are you still seeing this? did you do anything in particular to safeguard/fix?