подскажите пожалуйста как такое может быть?
1) есть главный процесс в фениксе, он запускает генсервер (FormWorker), который работает под DynamicSupervisor, и запускает WebSockex.start_link
2) затем главный процесс делает
FormWorker.call(...), который под капотом дергает в третьем модуле Websockex.send_frame, и он уже отваливается по timeout
pid1 - phoenix request
pid2 - DynamicSupervisor.start_child(FormWorker, child_spec)
pid3 - модуль который использует WebSockex
сначала pid3 отваливается с (EXIT) time out
потом по цепочке в pid2 происходит (EXIT) time out
и в конце умирает процесс феникса pid1
при выходе дочернего процесса (pid2) главный процесс (pid1) же не должен крашиться если pid2 запущен под DynamicSupervisor?
лог феникса:
14:11:56.233 [error] #PID<0.3587.0> running TechMateWeb.Endpoint (connection #PID<0.3586.0>, stream id 1) terminated
Request: POST /forms
** (exit) exited in:
GenServer.call(#PID<0.3589.0>, {:request, :full}, 5000)
** (EXIT) time out
14:11:57.918 [error] GenServer #PID<0.3589.0> terminating
** (stop) exited in:
WebSockex.call(#PID<0.3593.0>, {:text, "{\"eof\" : 1}"})
** (EXIT) time out
(websockex 0.4.2) lib/websockex.ex:431: WebSockex.send_frame/2
(tech_mate 0.1.1) lib/tech_mate/workflow/form_worker.ex:91: TechMate.Workflow.FormWorker.start_request/4
(tech_mate 0.1.1) lib/tech_mate/workflow/form_worker.ex:25: TechMate.Workflow.FormWorker.handle_call/3
(stdlib 3.12.1) gen_server.erl:661: :gen_server.try_handle_call/4
(stdlib 3.12.1) gen_server.erl:690: :gen_server.handle_msg/6
(stdlib 3.12.1) proc_lib.erl:249: :proc_lib.init_p_do_apply/3