<div dir="ltr">Hello,<br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Nov 7, 2016 at 1:11 PM, José Valim <span dir="ltr"><<a href="mailto:jose.valim@plataformatec.com.br" target="_blank">jose.valim@plataformatec.com.br</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Given a process in node 'A' that calls net_kernel:monitor_nodes() and a node 'B'.<div><br></div><div>* If node 'B' reconnects intermittently, is it guaranteed {nodedown, 'B'} is always delivered **before** an eventual {nodeup, 'B'}?</div></div></blockquote><div><br></div><div>No. The two connections are considered two different concurrent entities, so the same message ordering guarantees as normal apply, i.e. none in this case.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><br></div><div>* If the same process in node 'A' that calls net_kernel:monitor_nodes() also monitors a pid in node 'B', is it guaranteed the 'DOWN' messages for such pid are delivered **before** {nodedown, 'B'}?<br clear="all"></div></div></blockquote><div><br></div><div>Yes. The monitor_nodes() up/down messages enclose the connection, so all traffic (be it down, broken links, messages etc) are guaranteed to be inbetween the up and down of that connection.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div class="m_-2046162003533715021gmail_signature"><div dir="ltr"><div><div><br></div><div>I am in particular looking for the transitive property that if A monitors a process in B and B reconnects, the 'DOWN' messages are delivered before nodeup.</div></div></div></div></div></div></div></blockquote><div><br></div><div>So no, that is not guaranteed.</div><div><br></div><div>Lukas</div></div></div></div>