Hi all,

I'm using Thrift inside Cassandra, and I'm seeing conditions where I receive
lots of these error messages:

problem running get_slice: $VAR1 = bless( {
                 'code' => 0,
                 'message' => 'TSocket: timed out reading 4 bytes from
server-ip:9160'
               }, 'Thrift::TException' );

get_slice is the cassandra call.  The TSocket exception is thrown from
http://svn.apache.org/repos/asf/incubator/thrift/trunk/lib/perl/lib/Thrift/Socket.pm

The issue seems to be in the handling of read(), readAll(), and write().
 The code checks to see if the $self->{'handle'} variable (which is an
IO::Select object) is defined.  However, it seems possible for an IO::Select
object to be defined, but to have no handles that are valid or connected.
 It seems that the code could be a bit more robust in checking for a
condition where the handle is not open, and throw a more explicit exception.
 Then it can check for data in the Exception handle.

I'm happy to create a patch for it, but before I do so, is there a reason
why the code doesn't currently check for this error condition?

Thanks
Dave Viner

Reply via email to