Uploaded image for project: 'Thrift'
  1. Thrift
  2. THRIFT-1850

make check hangs on TSocket tests in TransportTest.cpp

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.9
    • 0.9.1
    • Test Suite
    • 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.

      Attachments

        Activity

          People

            roger Roger Meier
            codesf Randy Abernethy
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: