Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.1, 0.2, 0.3, 0.4
-
None
-
Patch Available
Description
Thrift::Socket#read will sometimes fail to enforce a timeout properly and wait approximately 2x @timeout before timing out the request.
Our testing via thrift_client (http://github.com/fauna/thrift_client) would only fail about 1/20 of the time. My hypothesis is that it only fails when you have a floating-point rounding error (we set the timeout to 0.8 seconds, but the math gave us 0.7999, so we wait another 0.8 seconds).
The patch doesn't have any tests, because this problem is non-deterministic. (also, I couldn't figure out how to run the tests)