process waits forever spawn_opt/5

Luke Bakken luke@REDACTED
Tue Jun 15 22:12:10 CEST 2021


Hi Vyacheslav,

It would be very helpful to share the code that spawn_opt is calling,
or provide code to reproduce this condition.

Does the function called by spawn_opt interact in _any_ way with the
gen_server that calls spawn_opt?

Thanks,
Luke

On Tue, Jun 15, 2021 at 1:09 PM Vyacheslav Levytskyy
<v.levytskyy@REDACTED> wrote:
>
> Hello,
>
> I'm surprised to see my gen_server process hanging forever when
> executing spawn/4 call. Process info shows spawn_opt/5 as a current
> function and status is waiting:
>
>  > process_info(P).
> [{current_function,{erlang,spawn_opt,5}},
>   {status,waiting},
>   {message_queue_len,13},
>   {trap_exit,false},
>   {priority,normal},
>   ...]
>
> Current stacktrace looks like:
>
>  > process_info(P, current_stacktrace).
> {current_stacktrace,[{erlang,spawn_opt,5,[]},
>                       {erlang,spawn,4,[]},
>                       ...
>                       {my_gen_server,handle_cast,2,
>                                      [{file,"..."},
>                                       {line,...}]},
>                       {gen_server,try_dispatch,4,
> [{file,"gen_server.erl"},{line,695}]},
>                       {gen_server,handle_msg,6,
> [{file,"gen_server.erl"},{line,771}]},
>                       {proc_lib,init_p_do_apply,3,
> [{file,"proc_lib.erl"},{line,226}]}]}
>
> I wonder what could be conditions that made spawn_opt/5 to stuck in this
> state. Is there something I can do on my side to prevent such problems
> in future?
>
> It's Erlang/OTP 24.0.2:
>
> Erlang/OTP 24 [erts-12.0.2] [source] [64-bit] [smp:8:8] [ds:8:8:10]
> [async-threads:1] [jit]
>
> Thank you,
> Vyacheslav
>


More information about the erlang-questions mailing list