[ 
https://issues.apache.org/jira/browse/THRIFT-4854?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jens Geyer resolved THRIFT-4854.
--------------------------------
       Resolution: Fixed
    Fix Version/s: 0.13.0

Committed

> 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
>             Fix For: 0.13.0
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> 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