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

Allen George commented on THRIFT-4390:
--------------------------------------

For both the framed and buffered read transport I set a fixed-size buffer with 
(what I thought) was an incredibly large size. The default is 4096 bytes - or 
4K. The immediate workaround is to bump those numbers up substantially so that 
cross tests can succeed. The longer term fix would be to use a growable buffer 
- like a vector and use that. That's a non-trivial change.

> Rust socket class cannot handle binary output larger than 4096 bytes
> --------------------------------------------------------------------
>
>                 Key: THRIFT-4390
>                 URL: https://issues.apache.org/jira/browse/THRIFT-4390
>             Project: Thrift
>          Issue Type: Bug
>          Components: Rust - Library
>    Affects Versions: 0.10.0
>         Environment: docker image ubuntu-artful
>            Reporter: James E. King, III
>            Assignee: Allen George
>            Priority: Critical
>
> While working on improving test coverage and fixing busted cross tests I 
> reworked the cpp test client to send binary in at size 0, 1, 2, 4, 6, 16, 
> ..., 131072 and after 4096 the rust server gave up.
> {noformat}
> 12, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 
> 127, 128])
> WARN:thrift::server::threaded: processor completed with error: TransportError 
> { kind: Unknown, message: "failed to write whole buffer" }
> Server process is successfully killed.
> {noformat}
> @gadLinux this may be the root cause of some of the issues you were seeing 
> with the interop against c_glib recently.  It is the root cause of some (if 
> not all of) the rs-csharp test failures.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to