[quagga-users 11017] Re: ospfd leaves stale OSPF routes

Roman Hoog Antink rha at open.ch
Wed Aug 12 15:36:32 IST 2009

Hi there

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 mailing list