I've got quagga running on Slackware 14.2, kernel 4.4.7, (quagga-1.0.20160315 build from sources). Quagga fails to update route when path dissappears.
For example, that route is wrong and it was previously created by quagga:
94.246.185.0/24 via 94.246.185.42 dev eth3.2224 proto zebra metric 20
As I understand, quagga has information about correct path, but ignores it because there's already route in kernel table...
bgp# show ip bgp 94.74.72.0/24
BGP routing table entry for 94.74.72.0/24
Paths: (2 available, best #2, table Default-IP-Routing-Table)
Not advertised to any peer
12741 1299 7713 45470 45470 50935
213.17.213.97 from 213.17.213.97 (83.238.252.171)
Origin IGP, localpref 100, valid, external
Community: 1299:37000 12741:21000 12741:21041
Last update: Tue Aug 30 11:28:22 2016
9002 7713 45470 45470 50935
87.245.245.89 from 87.245.245.89 (87.245.225.167)
Origin IGP, localpref 100, valid, external, best
Community: 9002:9002 9002:64789
Last update: Tue Aug 30 11:27:55 201
bgp# show ip route 94.74.72.0/24
Routing entry for 94.74.72.0/24
Known via "bgp", distance 20, metric 0, vrf 0
Last update 01:22:43 ago
87.245.245.89, via eth3.585
Routing entry for 94.74.72.0/24
Known via "kernel", distance 0, metric 0, vrf 0, best, fib
* 94.246.185.42, via eth3.2224
Is this may be a bug in quagga or error in my configuration?