[
https://issues.apache.org/jira/browse/THRIFT-5636?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sergey Yelin updated THRIFT-5636:
---------------------------------
Description:
It looks like erlang tests 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), but set some reasonable value and get data by chunks,
passing control to client.
was:
It looks like erlang tests 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.
> Broken tests 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
> Priority: Major
>
> It looks like erlang tests 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), but set some reasonable value and get data by chunks,
> passing control to client.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)