Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 498764

Summary: Pre-determined startup sequence for OpenRC
Product: Gentoo Hosted Projects Reporter: Benda Xu <heroxbd>
Component: OpenRCAssignee: OpenRC Team <openrc>
Severity: enhancement CC: xaionaro
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Package list:
Runtime testing required: ---

Description Benda Xu gentoo-dev 2014-01-21 10:11:51 UTC
The most frustrating senario with OpenRC is that after an upgrade, even with a successful "rc-update -u", the system somehow couldn't boot.

Most of the failures I experience are deadlocks from some weak (use, before/after) dependency loop. At present OpenRC does not have a feature to watch against such dependency loop before runtime and actual failure. This is also a blocker for parallel boot (bug 391945).

Weak dependency loop could be early detected if there is a mechanism to simulate boot process. Pre-determining service startup sequence serves as one of the simulation method.

The idea comes from insserv of Debian[1], it scans all init cripts, parses the LSB headers and construct a dependency tree (like OpenRC), and then output a set of symlinks which encodes the order of the services to be started (and stopped). startpar is used for parallel boot based on the resulting symlinks: Services with no dependency relations are started in parallel in a Makefile-style. Such parallel boot is reliable and well tested.

If the the insserv feature is implemented in OpenRC, the validity of the system can be reliably verified. We could say goodbye to startup deadlocks then.


Reproducible: Always
Comment 1 William Hubbs gentoo-dev 2014-01-21 16:13:45 UTC

*** This bug has been marked as a duplicate of bug 391945 ***