[erlang-bugs] ssl:setopts hangs indefinitely

Ingela Anderton Andin Ingela.Anderton.Andin@REDACTED
Fri Sep 28 11:00:01 CEST 2012


Hello!

Hi maybe you could use observer application to investigate your 
scenario, it would be interesting to know what the ssl gen_fsm-process 
is doing as it is not answering the setopts-request. Use observer to 
find the pid and do erlang:process_info(Pid, [current_stacktrace]).

Michael Gebetsroither wrote:
> Hello,
> 
> We have a lot of gen_server processes locked up here and we suspect ssl:setopts is the cause.
> The erlang vm version used is R15B01 from debian, and i'm currently testing R15B02 packages from esl.
> (confirmed, R15B02 from esl also has this problem)
> 
> The gen_server hang can be reproduced if we connect from a remote host over ssl to the server and remove the network
> plug, during communication. Though we couldn't reproduce the error with a local client.
> The hanging gen_server is the server process doing all the communication and housekeeping tasks on the socket.
> 
> After applying our fix all locked up gen_server processes are gone, because they now terminate on the 2 seconds timeout
> wrapped around ssl:setopts.
> 
> IMHO the problematic code part is ssl_connection.erl:242 from R15B02 git tag (thought it seems it is not the root cause,
> only the effect).
> 
> 
> # ssl_connection.erl:242
> set_opts(ConnectionPid, Options) ->
>     sync_send_all_state_event(ConnectionPid, {set_opts, Options}).
> 


If a timeout is actually needed for setopts that could be easily 
accomplished by changing that line to
  Timeout = %% Some reasonable timeout value,
  sync_send_all_state_event(ConnectionPid, {set_opts, Options}, Timeout).
But I am not sure I think that is the right thing to do! We need to 
understand the cause of the problem better.

[...]

Regards Ingela Erlang/OTP team - Ericsson AB




More information about the erlang-bugs mailing list