[prev in list] [next in list] [prev in thread] [next in thread] 

List:       keepalived-devel
Subject:    Re: [Keepalived-devel] nopreempt from FAULT state not working
From:       "Jari Takkala" <Jari.Takkala () Q9 ! com>
Date:       2007-11-01 15:51:38
Message-ID: 413FEEF1743111439393FB76D0221E4808E03E11 () leopard ! zoo ! q9networks ! com
[Download RAW message or body]

On Sunday, April 1, 2007 1:03, keepalived-devel-bounces@lists.sourceforge.net wrote:
> Hello,
> 
> I think the owner of higher priority in FAULT state shouldn't preempt
> current MASTER when it's recovering, if the nopreempt option is set.
> It seems otherwise. Is this a bug?

We ran into this same issue while testing the nopreempt option. We are running \
keepalived on two firewalls, with a crossover interface between them. To avoid \
problems with STP on our switches, we run only one VRRP instance across the crossover \
cable. Both the firewalls start up in BACKUP mode, one has a priority of 250 and the \
other 50.

As of keepalived 1.1.15, if either unit goes into FAULT state, then the higher \
priority unit will always preempt. I applied Kimitoshi's patch below and now the \
higher priority unit will not preempt coming out of FAULT state if the other unit is \
in MASTER state.

I believe this behaviour is more correct, at least it is how I expected keepalived to \
function when configuring the nopreempt option. Currently nopreempt does preempt when \
recovering from FAULT state.

Alexandre, would you consider applying this patch to future versions of keepalived?

Thanks!

Jari

> The following changes behavior;
> 
> diff -cr keepalived-1.1.13_orig/keepalived/vrrp/vrrp.c
> keepalived-1.1.13/keepalived/vrrp/vrrp.c
> *** keepalived-1.1.13_orig/keepalived/vrrp/vrrp.c       Wed
> Oct 11 18:45:04 2006
> --- keepalived-1.1.13/keepalived/vrrp/vrrp.c    Mon Apr  2 00:35:13
> 2007 
> ***************
> *** 881,887 ****
> return 0;
> } else if (vrrp->effective_priority > hd->priority ||
> hd->priority == VRRP_PRIO_OWNER) !              
> return 1; 
> 
> return 0;
> }
> --- 881,888 ----
> return 0;
> } else if (vrrp->effective_priority > hd->priority ||
> hd->priority == VRRP_PRIO_OWNER)
> !               if (!vrrp->nopreempt)
> !                       return 1;
> 
> return 0;
> }
> 

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Keepalived-devel mailing list
Keepalived-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/keepalived-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic