[Pkg-sysvinit-devel] Bug#696359: sysvinit-utils: Dependency based booting fails to respect dependencies

Francis Russell francis+dbts at unchartedbackwaters.co.uk
Thu Dec 20 00:04:54 UTC 2012


Package: sysvinit-utils
Version: 2.88dsf-34
Severity: important

The code in makeboot.c (startpar) that contructs the dependency graph
bails out when 999 arcs have been traversed when checking for a loop.
When it does, the dependency is never added, and is therefore
effectively ignored. This could result in services being started in the
wrong order.

This can be hit on a normal system (it does on mine, though without any
noticeable consequences). On a system with more init scripts (which
often remain from uninstalled services unless purged) I can imagine this
hitting more dependencies.

It's possible to the relevent code significantly more efficient, keeping
the cycle detection and losing the bizzare loop counter check. This bug
report contains relevant background and a patch:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=609959

I've filed this a new bug report because firstly, the "too many loops!" warning
has since been hidden from user view and secondly, it's not obvious from
that report that the loop counter check means that dependencies may fail
to be added to the dependency graph. For a dependency based boot system,
I consider this a major issue.

Francis



More information about the Pkg-sysvinit-devel mailing list