[quagga-users 12962] Dependency loop on Solaris.

Brian Utterback brian.utterback at oracle.com
Mon Sep 10 20:48:15 BST 2012


I am trying to track down a problem starting ospfd and ospf6d on 
Solaris. There is an explicit dependency between bgpd and zebra such 
that if bgpd is starting and zebra is already running, the script forces 
zebra to restart and once it has restarted, it continues with starting 
bgpd.

However, there is a bug in the process and it forces all of the other 
daemons to do this same process. The problem happens when there are two 
or more daemons enabled.

For example, suppose that ospf and ospf6 are both enabled. The zebra 
daemon starts out disabled, so when ospf starts, it enables zebra and 
once zebra is up and running, finishes starting ospf. Then ospf6 starts. 
Since zebra is enabled, it disables zebra. Ospf has a dependency in 
zebra, so when zebra is disabled, ospf is shutdown too. The the ospf6 
startup script re-enables zebra. Once zebra is up and running, ospf6 is 
started. But now that zebra is up, ospf is started. It sees that zebra 
is enabled, so it disables it. This brings zebra down, but it also 
brings down ospf6. The ospf script then re-enables zebra and once it is 
up and running, finishes starting ospf. But now ospf6 is down, so it 
starts and the whole thing repeats. Eventually the system notices the 
loop and shuts them all down.

So, in an attempt to resolve this, I have a couple of questions:

Currently, only bgpd has an explicit dependency on zebra running, the 
others are due to a bug. Is it in fact the case that only bgpd needs 
zebra? If not, which of the daemons need zebra running?

 From the way it is written, it appears that zebra must be running 
before the dependent daemons are started. Is that the case? Is there a 
problem is the daemon is started first?

The code explicitly restarts zebra when the daemon is enabled. Is this 
necessary? What would happen if zebra is already running and it was not 
restarted? If it is not a problem, then why do you suppose that the 
start up script shuts it down and then restarts it?

Thanks for your help.

-- 
blu

Always code as if the guy who ends up maintaining your code will be a
violent psychopath who knows where you live. - Martin Golding
-----------------------------------------------------------------------|
Brian Utterback - Solaris RPE, Oracle Corporation.
Ph:603-262-3916, Em:brian.utterback at oracle.com



More information about the Quagga-users mailing list