[erlang-questions] Unexpected {#Ref<0.0.0.110>, {error, closed}} message on passive SSL socket in R15

Ingela Andin <>
Fri Aug 10 10:51:21 CEST 2012


Hi!

This is a known bug that has been fixed in the upcoming release of the
ssl application.

Regards Ingela Erlang/OTP team - Ericsson AB

2012/8/9, Ulf Leopold <>:
> Hi!
>
> When using an SSL socket in passive mode I receive a
> {#Ref<0.0.0.110>,{error,closed}} message after the connection is closed. I
> only see this message in R15 but not in R14B04. The example below can be
> used to reproduce the problem. I this expected behavior?
>
> Thanks,
>
> Ulf
>
>
> -module(test1).
> -export([f/0]).
>
> f() ->
>   ssl:start(),
>
>   {ok, S} = ssl:connect("www.google.com", 443, [{active, false}], 10000),
>   ok = ssl:send(S, "GET / HTTP1.1\r\n\r\n"),
>   get_all(S),
>   ok = ssl:close(S),
>
>   receive
>     {_, {error,closed}} = X -> io:format("got a: ~p~n", [X])
>   after 1000
>         -> io:format("no extra message~n")
>   end.
>
> get_all(S) ->
>   {ok, D} = ssl:recv(S, 0),
>   get_all(S, [D]).
>
> get_all(S, Acc) ->
>   case ssl:recv(S, 0) of
>     {error, closed} -> lists:append(lists:reverse(Acc));
>     {ok, D}         -> get_all(S, [D | Acc])
>   end.
>
>
> Example run:
>
>    Erlang R14B04 (erts-5.8.5) [source] [64-bit] [smp:8:8] [rq:8]
> [async-threads:0] [kernel-poll:false]
>
>    Eshell V5.8.5  (abort with ^G)
>    1> c(test1).
>    {ok,test1}
>    2> test1:f().
>    no extra message
>
>
>    Erlang R15B (erts-5.9) [source] [64-bit] [smp:8:8] [async-threads:0]
> [hipe] [kernel-poll:false]
>
>    Eshell V5.9  (abort with ^G)
>    1> c(test1).
>    {ok,test1}
>    2> test1:f().
>    got a: {#Ref<0.0.0.110>,{error,closed}}
>



More information about the erlang-questions mailing list