You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Yuxuan Wang (Jira)" <ji...@apache.org> on 2025/06/23 21:03:00 UTC

[jira] [Commented] (THRIFT-5883) [c++] Using "header" transport on both the client and server raises errors on the server

    [ https://issues.apache.org/jira/browse/THRIFT-5883?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17985719#comment-17985719 ] 

Yuxuan Wang commented on THRIFT-5883:
-------------------------------------

As said in https://issues.apache.org/jira/browse/THRIFT-5882?focusedCommentId=17985718&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-17985718, buffered+binary client works is a feature from server's header implementation and expected. The exceptions you saw from the server is probably a bug in cpp's implementation.

> [c++] Using "header" transport on both the client and server raises errors on the server
> ----------------------------------------------------------------------------------------
>
>                 Key: THRIFT-5883
>                 URL: https://issues.apache.org/jira/browse/THRIFT-5883
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Library
>    Affects Versions: 0.18.1, 0.22.0
>            Reporter: Jean-Charles Quillet
>            Priority: Major
>
> I have a cpp server running transport "header" and protocol "binary"
> When a client sends a request using transport "buffered", protocol "binary". Everything works fine for the server and the client and no error is raised.
> When a client sends a request using transport "header", protocol "binary". Everything works fine from the client point of view. But on the server, I can see these errors, depending on the client.
> with a cpp client:
> {code:java}
> Thrift: Thu Jun 19 11:17:20 2025 TSocket::write_partial() send() <Host: 127.0.0.1 Port: 36622>: Broken pipe
> Thrift: Thu Jun 19 11:17:20 2025 TConnectedClient input close failed: write() send(): Broken pipe
> Thrift: Thu Jun 19 11:17:20 2025 TSocket::write_partial() send() <Host: 127.0.0.1 Port: 36622>: Broken pipe
> Thrift: Thu Jun 19 11:17:20 2025 TConnectedClient output close failed: write() send(): Broken pipe
> {code}
> with a python client:
> {code:java}
> Thrift: Thu Jun 19 11:21:00 2025 TConnectedClient output close failed: Called write on non-open socket 
> {code}
> From the experiment I did, it looks armless (no fd nor memory leak). But still there is definitly something that needs to be fixed here.
> See also THRIFT-5882
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)