You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Jens Geyer (JIRA)" <ji...@apache.org> on 2017/12/05 00:41:00 UTC

[jira] [Comment Edited] (THRIFT-3877) C++: library don't work with HTTP (csharp server, cpp client; need cross test enhancement)

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