So we added a whole bunch of new shiny features to baselayout of late, one of these included new parallel startup code which required a better service dependency and ordering function.
New parallel was nice and fast :) , whereas the new dependency and ordering function was dawg slow bro :(After much head scratching, there wasn’t too much more optimizing that we could do at the time.
The trace_dependencies functions has been re-written a few times to solve bugs and try and make it faster.
Well, today I’ve comitted a fix that cut’s around 70% off the time it takes to run 8)
We also think we’ve found the problem with a service ordering bug which I found out by luck on my server while testing the new code.
Basically, a baselayout ebuild (not sure which one as they seem to work) or a stage3 tarball placed faulty symlinks in /etc/runlevels/{boot,default}
.
Now we know the solution (hopefully), we’ll release a pre10 soon and maybe thing about making it stable?
So if you’re suffering from that bug, rc-status from baselayout-1.12.0_pre10 will tell you if you have any broken symlinks in your runlevels :)