Hi Dave No reason why we shouldn't check it. Could you please open a ticket? If you have a patch that would be great.
Thanks. Jake On Sep 29, 2010, at 3:13 AM, Dave Viner <[email protected]> wrote: > 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
