[erlang-questions] Hang in ssl_connection:call/2 with ranch

Roger Lipscombe roger@REDACTED
Mon Apr 29 14:40:42 CEST 2019


I found the underlying problem: the cert/key files are busted: <<"\n">>.

The failure mode is ... surprising, though.

On Fri, 26 Apr 2019 at 21:35, Roger Lipscombe <roger@REDACTED> wrote:
>
> (OTP-21.0)
>
> I'm looking at a deadlock on one of our servers (fortunately only in
> staging bring-up, so it's not bothering anyone yet).
>
> I've got a ranch protocol handler blocked in ranch:accept_ack, waiting
> for a 'shoot' message. That's never being sent because the
> ranch_conns_sup process is blocked in ssl:controlling_process ->
> ssl_connection:new_user -> ssl_connection:call ->
> gen_statem:call_dirty -> gen:do_call.
>
> This is *not* happening on any of our other servers. If I restart the
> node, it happens again when a client connects.
>
> It's also (afaict) only affecting two of the configured ranch
> listeners; the other two appear to be fine.
>
> I've got a crash dump: all I can see is the ranch_conns_sup process is
> blocking in gen_statem:call_dirty but the receiving process appears
> (afaict) to be happily sitting in gen_statem:loop_receive, with
> message_queue_len = 0, so I don't know why the call's not completing.
>
> Any ideas? What else can I look at, assuming it continues to happen?
>
> (OTP-21.0, ranch 1.3.2)



More information about the erlang-questions mailing list