Bug 1235219 - Backport of upstream locking code bugfix needed
Summary: Backport of upstream locking code bugfix needed
Status: CLOSED ERRATA
Alias: None
Product: Fedora EPEL
Classification: Fedora
Component: bird
Version: epel7
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Stanislav Kozina
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Keywords:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-06-24 10:38 UTC by Tore Anderson
Modified: 2016-02-24 18:55 UTC (History)
5 users (show)

(edit)
Clone Of:
(edit)
Last Closed: 2016-02-24 18:00:10 UTC


Attachments (Terms of Use)

Description Tore Anderson 2015-06-24 10:38:45 UTC
Description of problem:

BIRD will completely stop to transmit RIPng advertisements if Keepalived removes two IPv6 addresses from an interface. It will not resume transmitting advertisements at any point, in order to recover you need to restart it.

The underlying cause is a locking bug which was fixed upstream in BIRD 1.5.0:

https://gitlab.labs.nic.cz/labs/bird/commit/ab006391305165c805f75e3a2ce20946748233c9

This patch applies cleanly to BIRD 1.4.5, and I've confirmed that it fixes the RIPng. Please backport it to the BIRD 1.4.5 packages in EPEL.

Note that the RIPng issue only occurs if BIRD was compiled with CFLAGS="-O2". That's the case with the EPEL package.

Version-Release number of selected component (if applicable):

bird-1.4.5-1.el7.x86_64

How reproducible:

100%

Steps to Reproduce:
1. Start Keepalived (using the config below) on a machine with IPv6 connectivity on eth0, and wait for it to enter MASTER state
2. Start BIRD (using the config below)
3. Observe with "tcpdump -i eth0 -vns0 port 521" how the outgoing RIPng advertisements contains three routes: the primary link prefix on eth0, and the two Keepalived-handled addresses
4. Stop Keepalived
5. Observe with tcpdump how the advertisements now only contain a single route: the primary link prefix on eth0
6. Start Keepalived and wait for it to enter MASTER state
7. (Same as step #3)
8. Stop Keepalived

Actual results:

No RIPng advertisements are being sent. Adding addresses back (e.g., by starting Keepalived) does not change this. The only way to bring it back to life is to restart BIRD.

Expected results:

As step #5 - RIPng advertisements should continue for the active route (the link prefix on eth0). When adding addresses back, these should also be automatically advertised in subsequent RIPng advertisements.

Additional info:

I do not know why, but I have not been successful in reproducing the problem using standard "ip address add" and "ip address delete" commands, I need to use Keepalived. Also, it seems crucial that Keepalived is handling *two* virtual addresses - I cannot reproduce the bug if there is only one virtual address.

bird6.conf:
-----------
log syslog { info, remote, warning, error, auth, fatal };
router id 10.20.30.40;
protocol device {
	primary "lo" ::1;
}
protocol direct {}
protocol rip {
  interface "*" {
    mode nolisten;
    ttl security on;
  };
  period 1;
  import none;
  export filter {
   if net ~ ::/0 then accept;
   reject;
 };
}

keepalived.conf:
----------------
vrrp_instance vr_eth0 {
  state BACKUP
  interface eth0
  virtual_router_id 42
  virtual_ipaddress {
    2001:db8::1/128
    2001:db8::2/128
  }
}

Comment 1 Fedora Update System 2015-06-29 16:25:55 UTC
bird-1.4.5-2.el7 has been submitted as an update for Fedora EPEL 7.
https://admin.fedoraproject.org/updates/bird-1.4.5-2.el7

Comment 2 Fedora Update System 2015-06-29 16:26:51 UTC
bird-1.4.5-2.el6 has been submitted as an update for Fedora EPEL 6.
https://admin.fedoraproject.org/updates/bird-1.4.5-2.el6

Comment 3 Fedora Update System 2015-06-30 22:38:24 UTC
Package bird-1.4.5-2.el7:
* should fix your issue,
* was pushed to the Fedora EPEL 7 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=epel-testing bird-1.4.5-2.el7'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-EPEL-2015-6980/bird-1.4.5-2.el7
then log in and leave karma (feedback).

Comment 4 Warren Turkal 2015-11-30 19:37:47 UTC
Should this be closed?

Comment 5 Stanislav Kozina 2015-12-01 11:03:15 UTC
Hi Warren,
The package is available in the testing repo. Please leave some karma if it's working fine for you, then it can be moved to the normal repo. Thanks!

Comment 6 Fedora Update System 2016-02-24 18:00:08 UTC
bird-1.4.5-2.el7 has been pushed to the Fedora EPEL 7 stable repository. If problems still persist, please make note of it in this bug report.

Comment 7 Fedora Update System 2016-02-24 18:55:00 UTC
bird-1.4.5-2.el6 has been pushed to the Fedora EPEL 6 stable repository. If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.