[erlang-questions] Unexpected behavior of HTTPC module - tls_connection process take more memory
Sanath Prasanna
ahe.sanath@REDACTED
Thu Sep 17 09:09:39 CEST 2015
Hi Ingela,
Even apply your patch, *still problem is persist.* Any more suggestions to
solve this unexpected behavior ?
Br,
Robert
On Tue, Sep 8, 2015 at 1:52 PM, Sanath Prasanna <ahe.sanath@REDACTED>
wrote:
> Hi Ingela.
> Tx a lot for your help & patch related to that.I'll inform you the result
> after applying & testing patch.
> Br,
> Robert
>
> On Tue, Sep 8, 2015 at 1:31 PM, Ingela Andin <ingela.andin@REDACTED>
> wrote:
>
>> Hi!
>>
>> It could be an bug that in the ssl application that I just fixed. The
>> default session cache
>> was violating the API, and this in turn made the mechanism for not
>> registering a lot of equivalent
>> sessions in the client fail.
>>
>> Here is the patch:
>>
>>
>> diff --git a/lib/ssl/src/ssl_session.erl b/lib/ssl/src/ssl_session.erl
>> index 1770faf..0d6cc93 100644
>> --- a/lib/ssl/src/ssl_session.erl
>> +++ b/lib/ssl/src/ssl_session.erl
>> @@ -100,14 +100,14 @@ select_session([], _, _) ->
>> no_session;
>> select_session(Sessions, #ssl_options{ciphers = Ciphers}, OwnCert) ->
>> IsNotResumable =
>> - fun([_Id, Session]) ->
>> + fun(Session) ->
>> not (resumable(Session#session.is_resumable) andalso
>> lists:member(Session#session.cipher_suite, Ciphers)
>> andalso (OwnCert == Session#session.own_certificate))
>> end,
>> case lists:dropwhile(IsNotResumable, Sessions) of
>> [] -> no_session;
>> - [[Id, _]|_] -> Id
>> + [Session | _] -> Session#session.session_id
>> end.
>>
>> is_resumable(_, _, #ssl_options{reuse_sessions = false}, _, _, _, _) ->
>> diff --git a/lib/ssl/src/ssl_session_cache.erl
>> b/lib/ssl/src/ssl_session_cach
>> e.erl
>> index 11ed310..cfc48cd 100644
>> --- a/lib/ssl/src/ssl_session_cache.erl
>> +++ b/lib/ssl/src/ssl_session_cache.erl
>> @@ -83,7 +83,7 @@ foldl(Fun, Acc0, Cache) ->
>> %%--------------------------------------------------------------------
>> select_session(Cache, PartialKey) ->
>> ets:select(Cache,
>> - [{{{PartialKey,'$1'}, '$2'},[],['$$']}]).
>> + [{{{PartialKey,'_'}, '$1'},[],['$1']}]).
>>
>> %%--------------------------------------------------------------------
>> %%% Internal functions
>>
>>
>> Regards Ingela Erlang/OTP team - Ericsson AB
>>
>>
>> 2015-09-07 5:52 GMT+02:00 Sanath Prasanna <ahe.sanath@REDACTED>:
>>
>>> Hi all,
>>>
>>> I am running HTTP client using httpc Module to send both http and https
>>> requests. normally sending arround 300 request per second without any
>>> issue. however sometimes erlang node become very slow responsive. at that
>>> time server load average is very high and using etop can identify
>>> "tls_connection" process take more memory. when restart the erlang node its
>>> become normal. as per my investigation normal time memory, processors,
>>> loadAverage is not increasing. following is the HTTP request config
>>>
>>>
>>>
>>> httpc:request(Method, Request, [{timeout, TimeoutTime}], [{sync, false}])
>>>
>>>
>>>
>>> below is the etop output at that time
>>>
>>>
>>>
>>> procs 1134 processes 1504844
>>> code 9309
>>>
>>> runq 0 atom 420
>>> ets 29692
>>>
>>>
>>>
>>> Pid Name or Initial Func Time Reds Memory MsgQ
>>> Current Function
>>>
>>>
>>> ----------------------------------------------------------------------------------------
>>>
>>> <5490.26428.14>tls_connection:init/ '-' 733224580768 0
>>> gen_fsm:loop/7
>>>
>>> <5490.26429.14>tls_connection:init/ '-' 1328524580768 0
>>> gen_fsm:loop/7
>>>
>>> <5490.26430.14>tls_connection:init/ '-' 528924580768 0
>>> gen_fsm:loop/7
>>>
>>> <5490.26431.14>tls_connection:init/ '-' 1432224580768 0
>>> gen_fsm:loop/7
>>>
>>> <5490.26432.14>tls_connection:init/ '-' 024580768 0
>>> gen_fsm:loop/7
>>>
>>> <5490.26433.14>tls_connection:init/ '-' 024580768 0
>>> gen_fsm:loop/7
>>>
>>> <5490.26434.14>tls_connection:init/ '-' 024580768 0
>>> gen_fsm:loop/7
>>>
>>> <5490.26435.14>tls_connection:init/ '-' 024580768 0
>>> gen_fsm:loop/7
>>>
>>> <5490.26436.14>tls_connection:init/ '-' 024580768 0
>>> gen_fsm:loop/7
>>>
>>>
>>> can some one help me to solve this issue?
>>>
>>> Br,
>>>
>>> A.H.E. Robert
>>>
>>> _______________________________________________
>>> erlang-questions mailing list
>>> erlang-questions@REDACTED
>>> http://erlang.org/mailman/listinfo/erlang-questions
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20150917/0cccb7e1/attachment.htm>
More information about the erlang-questions
mailing list