Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.9
-
None
-
Mint 14 x64 and Centos 6.3 x64 and x86 [Web Server Profile] with clean install and minimum Thrift support added for C++
-
Patch Available
Description
On the systems noted with trunk rev 3a67c2f
TEST_BLOCKING_BEHAVIOR(CoupledFDTransports) and
TEST_BLOCKING_BEHAVIOR(CoupledSocketTransports) in
lib/cpp/test/TransportTest.cpp (around line 850)
produce timeout alarms with the warning:
"Timeout alarm expired; attempting to unblock transport"
and then the 4th (and 8th) TEST_RW(CoupledSocketTransports,...) hangs indefinitely due to a blocking socket write. Some others have noticed this:
http://stackoverflow.com/questions/13147105/thrfit-make-check-stuck
I have attached a patch that sets a timeout on the TSocket in question allowing transport reads to take place when the socket layer refuses to write. It appears trunk revision 0c025e8f reduced the socket_max_outstanding on the two problem tests to 400 in order to repair this (which I assume it did at the time). I do not think this is needed with the attached patch and have reverted to the symbolic socket_max_outstanding value.
The two TEST_BLOCKING_BEHAVIOR timeouts still alarm but the tests appear to run as they were meant to with this patch on all three systems I have tested. This is my first contribution, please let me know if it is off base in any way.