[ 
https://issues.apache.org/jira/browse/THRIFT-4854?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16828795#comment-16828795
 ] 

Jens Geyer commented on THRIFT-4854:
------------------------------------

PS. The netstd TestSuite impl does not offer HTTP today, so there is no way to 
test it right now.

> 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
>            Priority: Major
>
> 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