[ 
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:41 AM:
--------------------------------------------------------------

[~chetmurthy]: 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 even look at the data read 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}}. 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!


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

Reply via email to