[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [RFH] !!SOS!! totally hosed init system



On Fri, Jan 03, 2014 at 01:57:00PM +0000, Thorsten Glaser wrote:
> Roger Leigh <rleigh <at> codelibre.net> writes:
> 
> > If you're referring to the commit above, it's because we've fully
> > transitioned to dependency-based boot for wheezy, so the hardcoded
> > runlevel ordering isn't used any more (at all), even for file-rc.
> > Note that file-rc was also updated to use insserv, so it too was
> > also using dynamic ordering.  So the above removal should have had
> > zero effect upon use of either system--both systems were already
> > using the "defaults" option implicitly.
> 
> Right, but “defaults” translates to “start 2345 stop 06” here,
> happily ignoring the LSB header.

If file-rc and/or the maintainer scripts somehow restored the links
incorrectly, then insserv will ignore the header and preserve your
customisations (not the link ordering, but the runlevels to start
and stop in).  This would certainly be the cause of all the
warnings you see.  If you set them this way in your file-rc
config, it may be simply preserving your state?

If anything is assuming defaults means "start 2345 stop 06" and
ignores the LSB header, then that's an RC bug I think.  I can't
see such behaviour looking with a quick grep in either sysv-rc or
file-rc.  If you can identify what caused that, it would be very
useful.

We do need to start looking at migration from file-rc to $replacement
after the tech-ctte decides.  If sysvinit will remain supported in
jessie, then ensuring a clean migration to sysv-rc may be sufficient.
But keeping it going via insserv for wheezy was a step too far maybe--
it would have been desirable to have dropped it for wheezy.  Anyway,
we need to sort out a transition in the near future in any case.

> > The real problem here is probably that the maintainer scripts for
> > handling the transition between the file-rc and sysv-rc systems
> > may not be doing their job robustly.
> 
> This may be the issues I’ve seen _after_ switching from file-rc
> back to sysv-rc, yes.
> 
> But the other issues (filesystems readonly, /dev/net/tun ENOENT,
> eth1 not renamed, etc.) were common to both of them; most (but
> not all) of those went away with upstart though…

I can't comment on the upstart side, let's not overcomplicate with
a third system ;)  These sound like separate issues to the
file-rc → sysv-rc switch; if so, they need investigating
independently once you have a standard functional booting system
again.

> > and sysv-rc should make sure insserv is run again.  If any
> 
> insserv was run again but spewed lots of warnings about invalid
> dependencies, and about ignoring the "Default-Start: S" value
> for eg. the single script in favour of the "2 3 4 5" it installed.
> 
> > be much appreciated.  I thought this was all working for wheezy
> 
> I think it was working for wheezy, yes.
> 
> Anyway, is there a way to tell update-rc.d or insserv or whatever
> to just ignore the existing /etc/rc*.d/ structure completely and
> build a new one just from the LSB headers? (Also, how much of it
> do I need for upstart? I could probably switch back to sysvinit,
> too – if things will work there again.)

"insserv -d" should revert to the defaults.  And there's not usually
any reason to deviate from them.

If not, you could remove the structure entirely and then try re-
running "insserv -d" again.


Regards,
Roger

-- 
  .''`.  Roger Leigh
 : :' :  Debian GNU/Linux             http://people.debian.org/~rleigh/
 `. `'   Printing on GNU/Linux?       http://gutenprint.sourceforge.net/
   `-    GPG Public Key: 0x25BFB848   Please GPG sign your mail.

Attachment: signature.asc
Description: Digital signature


Reply to: