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

Ulf Leopold ulf.leopold@REDACTED
Thu Aug 9 16:08:10 CEST 2012


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}}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20120809/884b756a/attachment.htm>


More information about the erlang-questions mailing list