<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi,<div><br></div><div>I have a working Spread configuration that I've been playing with for quite a while now.</div><div><br></div><div>I've noticed that if one of the Spread Daemons in a configuration can't see all the others the whole 'network' stops passing messages.</div><div><br></div><div>For example;</div><div><font class="Apple-style-span" face="'Courier New'"><font class="Apple-style-span" face="Helvetica"><br></font></font></div><div><font class="Apple-style-span" face="'Courier New'">Host A &lt;=wan=&gt; Host B &lt;= wan =&gt; -+--- &nbsp; Host C --+</font></div><div><font class="Apple-style-span" face="'Courier New'">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |-- LAN</font></div><div><font class="Apple-style-span" face="'Courier New'">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; +--- &nbsp; Host D --+</font></div><div><font class="Apple-style-span" face="'Courier New'"><br></font></div><div><font class="Apple-style-span" face="'Courier New'"><br></font></div><div>A &amp; B are each in different segments. &nbsp;C&amp;D are in the same segment. &nbsp;Link from A to B is WAN, B to C&amp;D is WAN, C &amp; D are directly connected and in the same broadcast domain.</div><div><br></div><div><div>Spread_Segment &nbsp;.255 &nbsp;{</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;site3_C &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;C&nbsp;</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;site3_D &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;D&nbsp;</div><div>}</div><div><br></div><div>Spread_Segment &nbsp;B {</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; site2_B &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;B</div><div>}</div><div><br></div><div>Spread_Segment A {</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; site1_A &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;A</div><div>}</div></div><div><br></div><div><br></div><div>If A loses it's route to Host C (and/or) D, but B can still see C and D then the whole Spread topology seems to get stuck.</div><div><br></div><div>Or, if B can see host C but not D - but C+D can see each other. &nbsp;The following log snippets are when Host A has been manually stopped, but host B can only see Host C, whereas C + D can see each other. &nbsp;Obviously this was caused by a problem with the physical LAN, however I'd really like a way to stop Spread 'dying' in this situation - even if it means that each host forms it's own 'group' and they don't communicate between each other.</div><div><br></div><div>The log on C/D look similar to the following (repeated over and over again):</div><div><div>[Wed 08 Sep 2010 04:56:58] Memb_handle_message: handling join message from B, State is 1</div><div>[Wed 08 Sep 2010 04:56:58] Handle_join in OP</div><div>[Wed 08 Sep 2010 04:58:03] Memb_handle_message: handling join message from B, State is 1</div><div>[Wed 08 Sep 2010 04:58:03] Handle_join in OP</div><div>[Wed 08 Sep 2010 04:59:08] Memb_handle_message: handling join message from B, State is 1</div><div>[Wed 08 Sep 2010 04:59:08] Handle_join in OP</div><div>[Wed 08 Sep 2010 05:00:13] Memb_handle_message: handling join message from B, State is 1</div><div>[Wed 08 Sep 2010 05:00:13] Handle_join in OP</div></div><div><br></div><div>The log on B looks like the following (repeated over and over again):</div><div><div>[Wed 08 Sep 2010 08:39:19] Memb_handle_message: handling refer message from D, State is 4</div><div>[Wed 08 Sep 2010 08:39:19] Handle_refer in GATHER</div><div>[Wed 08 Sep 2010 08:39:19] Memb_handle_message: handling join message from C, State is 4</div><div>[Wed 08 Sep 2010 08:39:20] Send_join: State is 4</div><div>[Wed 08 Sep 2010 08:39:21] Send_join: State is 4</div><div>[Wed 08 Sep 2010 08:39:22] Send_join: State is 4</div><div>[Wed 08 Sep 2010 08:39:23] Send_join: State is 4</div><div>[Wed 08 Sep 2010 08:39:24] Send_join: State is 4</div><div>[Wed 08 Sep 2010 08:39:24] Form_or_fail:failed, return to OP</div><div>[Wed 08 Sep 2010 08:40:24] Send_join: State is 4</div><div>[Wed 08 Sep 2010 08:40:24] Memb_handle_message: handling join message from C, State is 4</div><div>[Wed 08 Sep 2010 08:40:24] Memb_handle_message: handling refer message from D, State is 4</div><div>[Wed 08 Sep 2010 08:40:24] Handle_refer in GATHER</div><div>[Wed 08 Sep 2010 08:40:25] Send_join: State is 4</div><div>[Wed 08 Sep 2010 08:40:26] Send_join: State is 4</div><div>[Wed 08 Sep 2010 08:40:27] Send_join: State is 4</div><div>[Wed 08 Sep 2010 08:40:28] Send_join: State is 4</div><div>[Wed 08 Sep 2010 08:40:29] Form_or_fail:failed, return to OP</div><div>[Wed 08 Sep 2010 08:41:29] Send_join: State is 4</div></div><div><br></div><div>Any messages sent on B seem to block indefinitely in this situation. &nbsp;(I believe they also block on C &amp; D, but I haven't confirmed this)</div><div><br></div><div>Does anybody have any ideas on how to encourage Spread to settle and allow messages to pass in this situation? &nbsp;I'm happy to look at code, but would need guidance on where to look!</div><div><br></div><div>Thanks!</div><div>Mel</div><div><br></div><div>PS:&nbsp;I've had similar problems if&nbsp;host B is multihomed on two networks - A on one, C/D on the it will never "form". &nbsp;It seems to get confused about B having two addresses (one on each lan) - I worked around this by just removing one Spread Segment and directly connecting the client. &nbsp;&nbsp;</div><div><br></div></body></html>