[quagga-users 11017] Re: ospfd leaves stale OSPF routes
Roman Hoog Antink
rha at open.ch
Wed Aug 12 15:36:32 IST 2009
I think I found the reason, why ospfd fails to cleanup all learned
routes in the kernel during shutdown. I already posted my findings to
the dev list. But in order to finish the issue here, I give you a
summary of my findings.
The signal handler of SIGTERM finally leads to
ospfd/ospfd.c:ospf_finish_final(). That function first terminates all
timers and then zebra is being told to delete all external OSPF routes.
The communication to zebra is a nonblocking write to a unix socket. If
ospfd has many routes to delete (over 500), the socket buffer gets
overrun, because zebra can't delete the routes as fast as they come in,
and a timer in ospfd should retry later. But as we are in the shutdown
process already, that timer never gets its chance.
More information about the Quagga-users