On 4/14/2016 11:27 AM, Jafar Al-Gharaibeh wrote:
I'm running the latest Quagga release on a few routers and I get
random crashes every now and then when I restart Quagga followed by
another program that pushes a lot of configuration through vtysh. All
of the links I have are GRE tunnels (point-to-point) sharing the IP
address of the physical interface they are running on top of. This has
always worked using the "apt-get'ed" 0.99.17 version of Quagga. I
started to see the crash after updating to the newest release.
I debugged this under gdb and the two cases that I captures happened
after a change to an interface, the cost in one case, up/down in
another. In both cases the crash happen because of a bogus table
pointer when working on refreshing LSA due to the change. I found that
the actual problem is up in the the stack when processing neighbors on
an interface. The list of neighbors has two entries (represented by
two route_node structures).
Question: The first neighbor on the interface (call it interface A) is
the router (Router ID X ) itself, is that correct? I can see a
neighbor with router ID X. I also can see that the interface field in
the neighbor's structure points back to A which seems logical.
The second neighbor (which actually causes the crash down the stack)
is again the router itself with but this time with router ID A (my
configuration program probably pushes the ID X the first thing, but I
have to confirm is we start with ID A in the config file) but most of
the fields contains garbage data including the interface field.
Just to confirm here. Quagga initially starts with the semi-empty
configuration., not even a router ID. Everything is done dynamically at
runtime through vtysh.
Going back to the two route node (rn) entries above. One rn points to
a neighbor that happens to be "self", the other rn has address/netmask
that matches the interface (A in my example above). The info pointer
that is supposed to point to a neighbor seems to be just garbage
(uninitialized neighbor maybe? or it should be null)
--Jafar
I will continue debugging this but if anyone can answer my question
above that would greatly help.
Thanks,
Jafar
_______________________________________________
Quagga-dev mailing list
[email protected]
https://lists.quagga.net/mailman/listinfo/quagga-dev
_______________________________________________
Quagga-dev mailing list
[email protected]
https://lists.quagga.net/mailman/listinfo/quagga-dev