Repository: thrift Updated Branches: refs/heads/master b26c0b8dc -> 0b09887bc
THRIFT-2842 Erlang thrift client has infinite timeout Client: Erlang Patch: Anthony Molinaro Project: http://git-wip-us.apache.org/repos/asf/thrift/repo Commit: http://git-wip-us.apache.org/repos/asf/thrift/commit/0b09887b Tree: http://git-wip-us.apache.org/repos/asf/thrift/tree/0b09887b Diff: http://git-wip-us.apache.org/repos/asf/thrift/diff/0b09887b Branch: refs/heads/master Commit: 0b09887bc14427c374cd347ebb24a61d8ac0f713 Parents: b26c0b8 Author: Jens Geyer <[email protected]> Authored: Wed May 20 21:43:33 2015 +0200 Committer: Jens Geyer <[email protected]> Committed: Wed May 20 21:43:33 2015 +0200 ---------------------------------------------------------------------- lib/erl/src/thrift_client_util.erl | 1 + lib/erl/src/thrift_socket_transport.erl | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/thrift/blob/0b09887b/lib/erl/src/thrift_client_util.erl ---------------------------------------------------------------------- diff --git a/lib/erl/src/thrift_client_util.erl b/lib/erl/src/thrift_client_util.erl index 02368bf..7a11f3a 100644 --- a/lib/erl/src/thrift_client_util.erl +++ b/lib/erl/src/thrift_client_util.erl @@ -40,6 +40,7 @@ split_options([Opt = {OptKey, _} | Rest], ProtoIn, TransIn) split_options([Opt = {OptKey, _} | Rest], ProtoIn, TransIn) when OptKey =:= framed; OptKey =:= connect_timeout; + OptKey =:= recv_timeout; OptKey =:= sockopts -> split_options(Rest, ProtoIn, [Opt | TransIn]). http://git-wip-us.apache.org/repos/asf/thrift/blob/0b09887b/lib/erl/src/thrift_socket_transport.erl ---------------------------------------------------------------------- diff --git a/lib/erl/src/thrift_socket_transport.erl b/lib/erl/src/thrift_socket_transport.erl index 5e1ef02..fec0241 100644 --- a/lib/erl/src/thrift_socket_transport.erl +++ b/lib/erl/src/thrift_socket_transport.erl @@ -54,7 +54,6 @@ read(This = #data{socket=Socket, recv_timeout=Timeout}, Len) when is_integer(Len), Len >= 0 -> case gen_tcp:recv(Socket, Len, Timeout) of Err = {error, timeout} -> - error_logger:info_msg("read timeout: peer conn ~p", [inet:peername(Socket)]), gen_tcp:close(Socket), {This, Err}; Data -> @@ -87,7 +86,9 @@ parse_factory_options([{framed, Bool} | Rest], Opts) when is_boolean(Bool) -> parse_factory_options([{sockopts, OptList} | Rest], Opts) when is_list(OptList) -> parse_factory_options(Rest, Opts#factory_opts{sockopts=OptList}); parse_factory_options([{connect_timeout, TO} | Rest], Opts) when TO =:= infinity; is_integer(TO) -> - parse_factory_options(Rest, Opts#factory_opts{connect_timeout=TO}). + parse_factory_options(Rest, Opts#factory_opts{connect_timeout=TO}); +parse_factory_options([{recv_timeout, TO} | Rest], Opts) when TO =:= infinity; is_integer(TO) -> + parse_factory_options(Rest, Opts). %% @@ -108,7 +109,8 @@ new_transport_factory(Host, Port, Options) -> case catch gen_tcp:connect(Host, Port, SockOpts, ParsedOpts#factory_opts.connect_timeout) of {ok, Sock} -> - {ok, Transport} = thrift_socket_transport:new(Sock), + {ok, Transport} = + thrift_socket_transport:new(Sock, Options), {ok, BufTransport} = case ParsedOpts#factory_opts.framed of true -> thrift_framed_transport:new(Transport);
