Wackamole exits on RH9 and works fine on RH7.3

"Rama K. McIntosh" <[email protected]> Fri, 09 Jan 2004 15:31:45 -0500
Newsgroups gmane.comp.apache.mod-wackamole.general
Message-ID <[email protected]>
Hello Wackamole Users,

I am using Wackamole to maintain a virtual IP on 2 machines.   I am 
using the latest CVS code as of today.

Both machines use identical wackamole.conf configurations (below).    
One machine is running RH7.3 while the other is running RH9.

I have no problems with the RH7 box.    Howerver, if the RH9 box has the 
virtual IP and I issue a wackatrl -f command __on the RH7 box__, 
wackamole exits on the RH9 box with the following message in the log file:

Jan  9 12:10:03 jedi wackamole[23444]: DOWN: 
eth0:1:10.10.10.25/255.255.255.255

Note: I get the same behaviour if I kill the process on the RH7 box 
(i.e.  RH9 has the IP, I kill the wackamole process on the RH7 box and 
wackamole process exits on the RH9 box).

If I run "wackamole -d" in the forground, the problem goes away and 
everything works as expected.   If I reverse the machines (i.e. mess 
with the RH9 box while the RH7 box has the IP) everything works fine.

The only other thing that might be of interest, I see the folloing error 
when wacamole starts up on both machines and connects to spread:

Jan  9 12:09:47 jedi wackamole[23444]: 867 No such interface

The RH9 box has 2.4.20-XXX kernal while the RH7 box has a 2.4.18-xxx kernal.

Here is my wackamole.conf (identical for both machines):
--------------------------------------------------------------------------------------------------------------------------------------------

# The Spread daemon we are going to connect to.  It should be on the 
local box
Spread = 4803
SpreadRetryInterval = 5s
# The group name
Group = wack1
# Named socket for online control
Control = /var/run/wack.it

# Denote the interface we prefer to have
#prefer eth0:10.3.4.5/8
#prefer { eth0:10.2.3.4/8 eth1:192.168.10.23/24 }

# In most cases, I just don't care.  Let wackamole decide.
Prefer None
#Prefer { eth0:10.10.10.25/32 }


# List all the virtual interfaces (ALL of them)
VirtualInterfaces {
        # The following two lines have the same effect
        # en0:192.168.1.2/24
        { eth0:10.10.10.25/32 }
        # This is how you say 2 or more IPs are to be treated as a single
        # "set" or "virtual interface".  If wackamole decides that this
        # machine will manage it, you are ensured to get ALL the ips in the
        # set.
        # { en1:10.0.0.1/8 en0:192.168.35.64/26 }
}

# Collect and broadcast the IPs in our ARP table every so often
Arp-Cache = 90s

# List who we will notify
#       Here the netblock (/24 or /28) can be deceptive.  It is NOT a 
netmask
#       for a single IP.  It is how one will describe that they want to
#       notify ALL IPs in a segment.
Notify {
        # Let's notify our router:
        eth0:10.10.10.1/32

        # Notify out DB server
        eth1:10.0.0.4/32
        # 10.0.0.0 -> 10.0.0.255, but only 128 notifications/sec
        eth0:10.10.10.0/24 throttle 128
        # Wackamole shares arp-cache across machines, this says to
        # notify every IP address in the aggregate shared arp-cache.
        arp-cache
}
balance {
        # This field is the maximum number of IP addresses that will move
        # from one wackamole to another during a round of balancing.
        AcquisitionsPerRound = all
        # Time interval in each balancing round.
        interval = 4s
}
# How long it takes us to mature
mature = 5s
--------------------------------------------------------------------------------------------------------------------------------------------
Thanks,
-Rama