Merge lp:~andreserl/ubuntu/natty/keepalived/lp619712 into lp:ubuntu/natty/keepalived

Proposed by Andres Rodriguez
Status: Needs review
Proposed branch: lp:~andreserl/ubuntu/natty/keepalived/lp619712
Merge into: lp:ubuntu/natty/keepalived
Diff against target: 40 lines (+28/-0)
2 files modified
debian/changelog (+7/-0)
debian/patches/fix_vrrp_race_condition.patch (+21/-0)
To merge this branch: bzr merge lp:~andreserl/ubuntu/natty/keepalived/lp619712
Reviewer Review Type Date Requested Status
Chuck Short Pending
Review via email: mp+54405@code.launchpad.net
To post a comment you must log in.

Unmerged revisions

14. By Andres Rodriguez

debian/patches/fix_vrrp_race_condition.patch: Fix infinite loop in master
transition with sync groups. Patch taken from upstream (LP: #619712)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'debian/changelog'
2--- debian/changelog 2010-10-30 20:01:07 +0000
3+++ debian/changelog 2011-03-22 19:01:05 +0000
4@@ -1,3 +1,10 @@
5+keepalived (1:1.1.20-1ubuntu2) natty; urgency=low
6+
7+ * debian/patches/fix_vrrp_race_condition.patch: Fix infinite loop in master
8+ transition with sync groups. Patch taken from upstream (LP: #619712)
9+
10+ -- Andres Rodriguez <andreserl@ubuntu.com> Tue, 22 Mar 2011 14:46:18 -0400
11+
12 keepalived (1:1.1.20-1ubuntu1) natty; urgency=low
13
14 * Merge from debian unstable (LP: #668818), remaining changes:
15
16=== added file 'debian/patches/fix_vrrp_race_condition.patch'
17--- debian/patches/fix_vrrp_race_condition.patch 1970-01-01 00:00:00 +0000
18+++ debian/patches/fix_vrrp_race_condition.patch 2011-03-22 19:01:05 +0000
19@@ -0,0 +1,21 @@
20+Description: Fix VRRP Race Condition
21+ Patch fixes an infinite loop in master transition with sync groups.
22+ When transitioning to master state, keepalived might try to force
23+ transition to master state of other VRRP instances into the same group
24+ before their transition is complete. This leads to an infinite loop
25+ with huge VRRP trafic.
26+Author: Arjan Filius
27+Origin: http://git.formilux.org/?p=people/alex/keepalived.git;a=commit;h=c75f8f16d9094f605f4cfffbc5b29e0d547f307b
28+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/keepalived/+bug/619712
29+diff -Nur -x '*.orig' -x '*~' keepalived//keepalived/vrrp/vrrp_sync.c keepalived.new//keepalived/vrrp/vrrp_sync.c
30+--- keepalived//keepalived/vrrp/vrrp_sync.c 2011-03-22 14:34:29.207856000 -0400
31++++ keepalived.new//keepalived/vrrp/vrrp_sync.c 2011-03-22 14:35:02.398020751 -0400
32+@@ -154,7 +154,7 @@
33+ /* Perform sync index */
34+ for (e = LIST_HEAD(l); e; ELEMENT_NEXT(e)) {
35+ isync = ELEMENT_DATA(e);
36+- if (isync != vrrp) {
37++ if (isync != vrrp && isync->wantstate != VRRP_STATE_GOTO_MASTER) {
38+ /* Force a new protocol master election */
39+ isync->wantstate = VRRP_STATE_GOTO_MASTER;
40+ log_message(LOG_INFO,

Subscribers

People subscribed via source and target branches