[
https://issues.apache.org/jira/browse/THRIFT-3877?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16277814#comment-16277814
]
Jens Geyer edited comment on THRIFT-3877 at 12/5/17 12:40 AM:
--------------------------------------------------------------
@Chet: The fact that HTTP always needs a response does not imply that
a) there must be any data in it (it may consist only of HTTP headers) and
b) the thrift client needs to ready any data from the wire.
So yes, the HTTP response should probably be read, but the Thrift {{oneway}}
semantics are not to be affected w/regard to Thrift. What happens inside the
HTTP transport does mot matter and should be kept there. If that means that
HTTP is not really "fire and forget" because we have to wait for the impact
confirmation (to stick with the picture), well so be it. we dont want to break
HTTP ...
... but we also don't want to break {{oneway}}. And the latter implies that we
really should ignore whatever response is coming back, because {{oneway}} means
that there is no response, and this also includes no errors, exceptions, panics
or whatever: The server did return a HTTP 500? Who cares!
was (Author: jensg):
@Chet: The fact that HTTP always needs a response does not imply that
a) there must be any data in it (it may consist only of HTTP headers) and
b) the thrift client needs to ready any data from the wire.
So yes, the HTTP response should probably be read, but the Thrift {{oneway}}
semantics are not to be affected w/regard to Thrift. What happens inside the
HTTP transport does mot matter and should be kept there. If that means that
HTTP is not really "fire and forget" because we have to wait for the impact
confirmation (to stick with the picture), well so be it. we dont want to break
HTTP, but we also don't want to break {{oneway}}. The latter implies that we
really should ignore whatever response is coming back, because {{oneway}} means
that there is no response, and this also includes no errors, exceptions, panics
or whatever: The servers did return a 500? Who cares!
> C++: library don't work with HTTP (csharp server, cpp client; need cross test
> enhancement)
> ------------------------------------------------------------------------------------------
>
> Key: THRIFT-3877
> URL: https://issues.apache.org/jira/browse/THRIFT-3877
> Project: Thrift
> Issue Type: Bug
> Components: C++ - Library
> Affects Versions: 0.9.3, 0.10.0
> Environment: Windows 7, Visual Studio 2013 (C#), Qt 5.7 (MSVC 12).
> Thrift from git repo, SHA-1: 5a3f855b4e6882184f13c698855c877241144a12 (master)
> Reporter: Sergey Fasman
> Assignee: James E. King, III
> Priority: Critical
>
> Client on C++.
> Tested on C# HTTP server and client — work ideal.
> Then create client on C++. Client after request starts infinitly wait for
> data.
> For example, JSON protocol read data symbol by symbol, when trying read: it
> always try to call recv function (even all data already received).
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)