Elixir/Horde:DynamicSupervisor.start\u child()被一条神秘的警告消息阻止

Elixir/Horde:DynamicSupervisor.start\u child()被一条神秘的警告消息阻止,elixir,Elixir,我正在使用Elixir1.10.1和Horde0.8.3作为移动和web应用程序的后端API。基本上,用户由UserAgent表示,简称UA(用GenServer实现),它在集群中是唯一的,只要客户端应用程序至少有一个实时连接,它就存在。客户可以多次连接(电话、平板电脑、网络、家庭、工作等);每个连接都由一个连接代理表示,简称CA,它是唯一的。只要用户未注销或会话未过期,CA就处于活动状态。基本上,我只有一个唯一的UA,但我可以有几个CA 登录过程分为三个步骤 接收到HTTP登录请求(JSON内

我正在使用Elixir1.10.1和Horde0.8.3作为移动和web应用程序的后端API。基本上,用户由
UserAgent
表示,简称UA(用
GenServer
实现),它在集群中是唯一的,只要客户端应用程序至少有一个实时连接,它就存在。客户可以多次连接(电话、平板电脑、网络、家庭、工作等);每个连接都由一个
连接代理
表示,简称CA,它是唯一的。只要用户未注销或会话未过期,CA就处于活动状态。基本上,我只有一个唯一的UA,但我可以有几个CA

登录过程分为三个步骤

  • 接收到HTTP登录请求(JSON内容)后,将调用
    login()
    控制器。经过一些检查后,它调用Horde.DynamicSupervisor.start\u child(…)
  • 来创建并注册一个新的CA
  • 主管调用
    ConnectionAgent.start\u link()
    被调用,后者依次调用带有适当参数的
    GenServer.start\u link()
    ,最后调用
    ConnectionAgent.init()
  • CA应该创建一个新的UA或连接到现有的UA,以便调用`Horde.DynamicSupervisor.start\u child(…)
  • 在那一刻,程序冻结,我在控制台中永远收到以下警告消息,我肯定不知道该如何处理它们:

    [warn] Exit while fetching metrics from AlaaarmApi.DSup.
    Skip poll action. Reason: {:timeout, {GenServer, :call, [AlaaarmApi.DSup, :get_telemetry, 5000]}}.
    

    我只是被卡住了,所以任何提示都会有帮助…

    你在部落图书馆检查过当前和过去的问题吗

    这似乎是一个与部落有关的问题。这至少是部落0.8.2中的一个已知问题,应该在0.8.3中解决(参见和)


    在GitHub中打开一个问题,维护人员/用户肯定会帮助您

    不,我没有,但根据你的建议,我做了,并对该案添加了评论(该案已结案)。维护人员将该问题确定为死锁和故障。这实际上解决了问题。