[ https://issues.apache.org/jira/browse/THRIFT-5636?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jens Geyer resolved THRIFT-5636. -------------------------------- Fix Version/s: 0.18.0 Assignee: Sergey Yelin Resolution: Fixed Thanks! > Broken client in erlang client library > -------------------------------------- > > Key: THRIFT-5636 > URL: https://issues.apache.org/jira/browse/THRIFT-5636 > Project: Thrift > Issue Type: Bug > Components: Erlang - Library > Affects Versions: 0.17.0 > Reporter: Sergey Yelin > Assignee: Sergey Yelin > Priority: Major > Fix For: 0.18.0 > > Time Spent: 20m > Remaining Estimate: 0h > > It looks like erlang client library are broken since this > [fix|https://github.com/kpy3/thrift/commit/22f6a8a3c879175e18ce95f88a393f34ff8f158c]. > Now some of read tests for {{thrift_socket_transport}} module fail because of > timeout while waiting data from the mocked {{gen_tcp:recv/3}} call (because > of infinite loop in {{thrift_socket_transport:loop_recv/3}}). > In production, calling to {{thrift_socket_transport:read/2}} will lead to > infinite loop if remote server stop sending data to socket or received data > size is less than requested. > It looks like {{gen_tcp:recv/3}} should not try to receive all data from > socket (passing 0 to call) and not try to retrieve big amount of data (hiding > underlying call), but set some reasonable value and get data by chunks or > passing control flow to client. -- This message was sent by Atlassian Jira (v8.20.10#820010)