[
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)