[erlang-questions] Hang in ssl_connection:call/2 with ranch
Roger Lipscombe
roger@REDACTED
Fri Apr 26 22:35:59 CEST 2019
(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