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

Ruby read timeouts can sometimes be 2x what they should be

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.1, 0.2, 0.3, 0.4
    • 0.5
    • Ruby - Library
    • 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)

      Attachments

        1. THRIFT-899.patch
          2 kB
          Ryan King

        Activity

          People

            kingryan Ryan King
            kingryan Ryan King
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: