Jens Geyer created THRIFT-4854:
----------------------------------

             Summary: oneway calls do not work over HTTP
                 Key: THRIFT-4854
                 URL: https://issues.apache.org/jira/browse/THRIFT-4854
             Project: Thrift
          Issue Type: Bug
          Components: netstd - Library
            Reporter: Jens Geyer
            Assignee: Jens Geyer


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.

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to