kreynolds / cassandra-cql

DBI-like CQL driver for Cassandra in Ruby
Apache License 2.0
67 stars 43 forks source link

Requests and Responses get out of sync when thrift raises a TransportException #49

Open jarredholman opened 11 years ago

jarredholman commented 11 years ago

When the thrift library throws a Transport exception the requests and responses get out of sync.

query 1 -> transport exception raised query 2 -> returns response from query 1 query 3 -> returns response from query 2

My current solution is to rescue from any thrift exceptions and force a reconnect on the CassandraCQL::Database object, which works but seems overkill.

Is there a better way to recover from this error, to try reading the response again instead of reconnecting and executing the query a second time?

jarredholman commented 11 years ago

On further investigation it looks like like this should have been fixed with thrift_client 0.8.3 from this commit: https://github.com/twitter/thrift_client/commit/51a9adab97501fbe6698e51267e92b5c244f022a, but I am still seeing it. Is this a thrift_client problem?