[quagga-users 12962] Dependency loop on Solaris.
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
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.
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