<div dir="ltr">This is excellent info, thanks so much!</div><br><div class="gmail_quote"><div dir="ltr">On Fri, Oct 12, 2018 at 6:39 PM Dominic Morneau <<a href="mailto:dmorneau@gmail.com">dmorneau@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div dir="auto">Hi Vince,</div><div dir="auto"><br></div><div dir="auto">That’s a bug introduced in:</div></div><div dir="auto"><div><a href="https://github.com/erlang/otp/pull/1694" target="_blank">https://github.com/erlang/otp/pull/1694</a></div><div dir="auto"><br></div><div dir="auto">It happens when using an epmd_module that doesn’t implement the optional address_please callback.</div><br></div><div dir="auto">You can work around it by implementing address_please inside your EpmdClient module exactly like this:</div><div dir="auto"><div><a href="https://github.com/erlang/otp/blob/OTP-21.0.3/lib/kernel/src/erl_epmd.erl#L174" target="_blank">https://github.com/erlang/otp/blob/OTP-21.0.3/lib/kernel/src/erl_epmd.erl#L174</a></div><div dir="auto"><br></div><div dir="auto">Then inet_tcp_dist will pick up your implementation rather than the default case, which is broken because inet.getaddr/3’s last argument is not an address family, it’s a timeout:</div><div dir="auto"><div><a href="https://github.com/erlang/otp/blob/OTP-21.0.3/lib/kernel/src/inet_tcp_dist.erl#L450" target="_blank">https://github.com/erlang/otp/blob/OTP-21.0.3/lib/kernel/src/inet_tcp_dist.erl#L450</a></div><div dir="auto"><div><a href="https://github.com/erlang/otp/blob/OTP-21.0.3/lib/kernel/src/inet_tcp_dist.erl#L289" target="_blank">https://github.com/erlang/otp/blob/OTP-21.0.3/lib/kernel/src/inet_tcp_dist.erl#L289</a></div></div></div><br></div><div dir="auto">Dominic</div><div dir="auto"><br></div><div><div class="gmail_quote"><div dir="ltr">2018年10月12日(金) 5:58 Vince Foley <<a href="mailto:vincefoley@gmail.com" target="_blank">vincefoley@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hello there, I'm seeing some crashes in my logs since updating to OTP 21 that I can't quite track down...<div><br></div><div>The exit value looks like this:</div><div><br></div><div><div>{</div><div>  :badarg,</div><div>  [</div><div>    {:erlang, :start_timer, [:inet, #PID<0.17713.363>, :inet], []},</div><div>    {:inet, :start_timer, 1, [file: 'inet.erl', line: 1763]},</div><div>    {:inet, :getaddr, 3, [file: 'inet.erl', line: 591]},</div><div>    {:inet_tcp_dist, :do_setup, 7, [file: 'inet_tcp_dist.erl', line: 289]}</div><div>  ]</div><div>}</div></div><div><br></div><div>It looks like something is going wrong in the distributed node connection system. The result that I can see from this is that the nodes are no longer able to connect to each other.</div><div><br></div><div>I am using a mechanism other than the standard `epmd` to discover the other nodes, so I'm wondering if a detail changed that I have to adapt to. I'm using `-epmd_module`. The mechanism I'm using is described in this article:</div><div><br></div><div><a href="https://www.erlang-solutions.com/blog/erlang-and-elixir-distribution-without-epmd.html" target="_blank">https://www.erlang-solutions.com/blog/erlang-and-elixir-distribution-without-epmd.html</a><br></div><div><br></div><div>That might be related but I don't quite see how. Does anyone have any ideas what might be happening here?</div><div><br></div><div>Thanks!</div></div></div></div></div>
_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</blockquote></div></div>
</blockquote></div>