<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta name=Generator content="Microsoft Word 12 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Cambria;
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Cambria","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Cambria","serif";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>These might be related, though.  You are right, my case does not occur due to the host going to sleep, but both my hosts are Windows, and perhaps something is happening – whether it be with the network, firewall, virus protection, or whatever – that is causing the nodes to get disconnected, and they do not properly reconnect when the temporary issue is resolved.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>It might be the same thing in the Windows port of Erlang that prevents them from reconnecting after sleep that is preventing my nodes from reconnecting after something else.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Cheers,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>DBM<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><div style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt'><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> erlang-questions-bounces@erlang.org [mailto:erlang-questions-bounces@erlang.org] <b>On Behalf Of </b>József Bérces<br><b>Sent:</b> Friday, May 25, 2012 4:30 AM<br><b>To:</b> erlang-questions@erlang.org<br><b>Subject:</b> Re: [erlang-questions] What causes nodes to become disconnected/reconnected?<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";color:blue'>It is somewhat offtopic as I do not believe David experenced this, but I have similar disconnection when Windows goes to sleep. After the wake-up, the nodes do not see each other. Does anyone have any idea how to fix this?</span><o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";color:blue'>Thanks,</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";color:blue'>Jozsef</span><o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><div class=MsoNormal align=center style='text-align:center'><hr size=2 width="100%" align=center></div><p class=MsoNormal style='margin-bottom:12.0pt'><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> <a href="mailto:erlang-questions-bounces@erlang.org">erlang-questions-bounces@erlang.org</a> [<a href="mailto:erlang-questions-bounces@erlang.org">mailto:erlang-questions-bounces@erlang.org</a>] <b>On Behalf Of </b>Martynas Pumputis<br><b>Sent:</b> Friday, May 25, 2012 16:24<br><b>To:</b> David Mercer<br><b>Cc:</b> <a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br><b>Subject:</b> Re: [erlang-questions] What causes nodes to become disconnected/reconnected?</span><o:p></o:p></p><p class=MsoNormal style='margin-bottom:12.0pt'>Erlang doesn't detect net splits by itself. You could start looking at net_kernel:set_net_ticktime/2 (try to increase this value if your node is suffering from high load/traffic) and kernel/src/dist_utils.erl to get a grasp how erlang handles node connections.<br><br>Martynas<o:p></o:p></p><div><p class=MsoNormal>On Thu, May 24, 2012 at 6:23 PM, David Mercer <<a href="mailto:dmercer@gmail.com" target="_blank">dmercer@gmail.com</a>> wrote:<o:p></o:p></p><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>(Yes, I am still working on my issue with a distributed application that keeps losing its connection to the other node.)<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>It is not a problem only when I have 2 nodes on the <i>same</i> host.  I was running the nodes on <i>different</i> hosts last night, and this morning the failover node had lost its connection to the main and so had started its own instance of the application.  Calling <span style='font-family:Consolas'>nodes()</span> on the failover returned <span style='font-family:Consolas'>[]</span>.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Then I started a new node on the same host as the main (to see if it would restore the connections), and, yes, it did.  After starting the third node, <span style='font-family:Consolas'>nodes() </span>now on the failover node returns a list of two nodes, the two on the main host.  However, the application on the failover node did not shut down, and so it is still running on both the main and failover nodes.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>To summarize:<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p>1.<span style='font-size:7.0pt;font-family:"Times New Roman","serif"'>       </span>Distributed application running on a node on host A (“main@A”), failover on node on host B (“failover@B”).<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p>2.<span style='font-size:7.0pt;font-family:"Times New Roman","serif"'>       </span>At some point, <i>failover@B</i> becomes disconnected from <i>main@A</i>, and the application starts on <i>failover@B</i>.  Now there are two instances of the application running.<o:p></o:p></p><p> <o:p></o:p></p><p>3.<span style='font-size:7.0pt;font-family:"Times New Roman","serif"'>       </span>From a network point of view, there is still (or again) a valid network connection between hosts A and B.  I can’t say for sure if some network/firewall/other issue caused a temporary disconnect, but I can say that by the time I got in this morning, when the application was running on both nodes, there was a firm network connection between the two hosts.<o:p></o:p></p><p> <o:p></o:p></p><p>4.<span style='font-size:7.0pt;font-family:"Times New Roman","serif"'>       </span>Calling <span style='font-family:Consolas'>nodes()</span> on <i>failover@B</i> returns <span style='font-family:Consolas'>[]</span>.<o:p></o:p></p><p> <o:p></o:p></p><p>5.<span style='font-size:7.0pt;font-family:"Times New Roman","serif"'>       </span>A new (failover) node was started on host A (“failover@A”).  It does not start the application (which is correct, since it is already running, albeit on <i>both</i> other nodes instead of just one).<o:p></o:p></p><p> <o:p></o:p></p><p>6.<span style='font-size:7.0pt;font-family:"Times New Roman","serif"'>       </span>Calling <span style='font-family:Consolas'>nodes()</span> on <i>failover@B</i> now returns <span style='font-family:Consolas'>[failover@A,main@A]</span>.<o:p></o:p></p><p> <o:p></o:p></p><p>7.<span style='font-size:7.0pt;font-family:"Times New Roman","serif"'>       </span>The application, however, is still running on <i>failover@B</i>, despite the fact that nodes/0 reports a connection to <i>main@A</i>.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>I don’t need someone to diagnose this for me.  If someone could just educate me a little on how the connections work, how net splits are detected and nodes disconnected, etc., I might be able to take it from there.  Anyone know enough and have the time to type out a little blurb?  I can read source code, but having a little background knowledge would help put it into context for me.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Thank-you!<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Cheers,<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>David<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p></div></div><p class=MsoNormal style='margin-bottom:12.0pt'><br>_______________________________________________<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" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p></div></div></body></html>