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)