[Spread-users] Ethernet cable disconnection and Spread behavior.

Farshid Firouzeh farshidf at eegent.com
Wed May 20 15:38:06 EDT 2009

Hi all, 

I have a Spread configuration with two machines on the same subnet (for
now...i plan on using two machines located on different subnets later). 

Here is what my spread.conf looks like now:

Spread_Segment w.x.y.255:4803 {
   sm1  w.x.y.50
   sm2  w.x.y.51

Each machine has a Spread daemon running on it, so that my application
(also running on both machines, with both having to communicate with
each other) can connect to the daemon using 4803 at localhost , with Spread
knowing to pass on any messages from originating machine to other
machine (i.e machine 1 sending an SP_multicast message that reaches
machine 2 and vice versa). The way i configured my application, i have
all messages being sent to the localhost daemon, which in turn sends
them to the other machine. Now, here is where i am unclear as to how
exactly Spread works: 

I've implemented a ping functionality between the two applications,
where a ping message is being passed back and forth via Spread between
the two as a means of checking up on their network connectivity. If the
ping message fails to reach the application (and the way im causing this
is by disconnecting the ethernet cable from one of the machines), the
application makes an SP_multicast call using RELIABLE_MESS|SELF_DISCARD.
At the time of this call, both applications have joined the same group.

With the ethernet cable disconnection, i see the Spread daemon output
change from this:

Membership id is ( ..., ...)
Configuration at sm2 is:
Num Segments 1
        2       w.x.y.255   4803
                sm1          w.x.y.50
                sm2          w.x.y.51

To this (it actually depends on which machine you are on for the output
shown below):

Membership id is ( ..., ...)
Configuration at sm2 is:
Num Segments 1
        1       w.x.y.255   4803
                sm2          w.x.y.51

Anyway, the SP_multicast call with RELIABLE_MESS|SELF_DISCARD seems to
be being sent to the localhost daemon successfully, but is not being
passed on to the other machine. When i plug the disconnected ethernet
cable back in, the Spread daemon output goes back to the first
configuration with both machines detected again. I thought the purpose
of using RELIABLE_MESS was that the Spread daemon guarantees the message
would be sent and would recover any network loss (my application makes
this SP_multicast call AFTER the cable has been disconnected, so its not
gonna reach the other machine immediately)? When Spread realizes that
both machines are back in the system, shouldn't the localhost Spread
daemons re-send the message? Upon testing, i don't think this is
happening though. 

How does Spread react in the scenario i described?


More information about the Spread-users mailing list