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

oneway calls do not work over HTTP

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 0.13.0
    • netstd - Library
    • None
    • Patch Available

    Description

      HTTP calls work perfectly unless the method called is marked oneway. Due to the specifics of the underlying HTTP protocol, the server side need to always send a response, even an empty one.

      Currently this is not the case, hence the client waits for an answer which does not come, as the server end never completes the first request. Instead, the server starts to receive the next request on that connection, while the client is still waiting. 

      Ultimately this leads to the situation where the server detects a broken connection, throws a TransportException and therefore terminates on his end with an HTTP 500 status code. That response code, however, is not the result of the first call (the server is already done with that), but the result of the second call that never started.

      At the point when the server closes the transport, the client finally awakens, gets the last HTTP error status and declares the call failed.

      The problem is not the HTTP 500, this is absolutely correct. What is really missing is the server end completing the first HTTP call.

       

      Attachments

        Issue Links

          Activity

            People

              jensg Jens Geyer
              jensg Jens Geyer
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 20m
                  20m