So I can confirm that the bug exists in Quagga 0.99.15 and 0.99.10
Not sure if it makes sense to go even further backā¦
- Martin
On 28 Oct 2015, at 6:09, Paul Jakma wrote:
On Mon, 26 Oct 2015, Jacqueline Yu wrote:
/* Withdraw the route from the kernel. */
if (old_select
&& old_select->type == ZEBRA_ROUTE_BGP
- && old_select->sub_type == BGP_ROUTE_NORMAL)
- bgp_zebra_withdraw (p, old_select, safi);
So, this should have worked fine. That it does not means the bug then
is that old_select no longer has the information it should have - i.e.
the nexthop info that was sent to zebra.
Something has fiddled with the route in between it being sent to zebra
and this withdraw?
+ && old_select->sub_type == BGP_ROUTE_NORMAL) {
+ if (CHECK_FLAG (old_select->flags,
BGP_INFO_NEW_NHOP_INVALID))
{
+ attr = old_select->attr;
+ old_select->attr =
(bgp_info_extra_get(old_select))->attr;
And this patch is trying to workaround that by stashing /another/
reference to the attributes in (struct bgp_info_extra). A reference
which whatever other bogus bit of bgpd that is trampling over the
(struct bgp_info).attr doesn't know about, and so it stays valid and
pointing to the original, correct attr. And then retrieving that
reference here to temporarily set the old_select->attr pointer back
to.
That's a cute hack, I have to admit :), but it doesn't address the
root cause of this issue, does it? Something is screwing with (struct
bgp_info *)->attr when it should not be, or at least in a bogus
manner, right?
Martin, how long does it take you to test for this? Is there any
chance you could do a binary search (ala git bisect) starting with a
much earlier version Quagga and locate the commit that introduces this
bug?
This needs fixing properly.
regards,
--
Paul Jakma [email protected] @pjakma Key ID: 64A2FF6A
Fortune:
"Necessity is the mother of invention" is a silly proverb. "Necessity
is the mother of futile dodges" is much nearer the truth.
-- Alfred North Whitehead
_______________________________________________
Quagga-dev mailing list
[email protected]
https://lists.quagga.net/mailman/listinfo/quagga-dev