sysv-rc uses /sbin/runlevel without depending on a package that provides it

Bug #1444502 reported by Robie Basak on 2015-04-15
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
sysvinit (Ubuntu)
Undecided
Unassigned

Bug Description

Diogo had the following error on installing mysql-server-5.6 (5.6.23-1~exp1~ubuntu5):

/usr/sbin/invoke-rc.d: 1: /usr/sbin/invoke-rc.d: /sbin/runlevel: not found

Upon investigation, it seems that he didn't have systemd-sysv installed. He had started from a Vivid beta3 image and only upgraded (not dist-upgraded) since. A dist-upgrade brought in systemd-sysv and fixed the issue.

However, I note that this shouldn't have happened anyway. sysv-rc (which provides invoke-rc.d) should depend on whatever provides /sbin/runlevel since it's provided here by systemd-sysv which is not marked essential. If it did so, then Diogo's system would have held back packages appropriately to not cause this breakage until he dist-upgraded.

We think Diogo was running version 2.88dsf-53.2ubuntu12 before the upgrade. He's definitely running 2.88dsf-53.2ubuntu12 now.

Martin Pitt (pitti) wrote :

I think the best/easiest fix for this would be to have sysv-rc "Depends: init"?

Robie Basak (racb) wrote :

Marking Invalid on the basis that init is essential and (pre-)depends on systemd-sysv | upstart-sysv, both of which provide /sbin/runlevel. Beta users need to apt-get dist-upgrade to make everything work anyway. Users upgrading from previous releases should use the update manager or do-release-upgrade and so will not be affected.

15:27 <rbasak> pitti: may I have your opinion on bug 1444502 please? Odd situation that matsubara ended up in just now.
15:27 <ubottu> bug 1444502 in sysvinit (Ubuntu) "sysv-rc uses /sbin/runlevel without depending on a package that provides it" [Undecided,New] https://launchpad.net/bugs/1444502
15:27 <rbasak> dist-upgrade fixed it, but I think it should have been prevented by dependencies
15:36 <pitti> rbasak: (sorry, sprint hectic/delay) I followed up to the bug with a quick proposal
15:36 <pitti> does that sound alright to you?
15:40 <rbasak> pitti: I think so, yes, since init pre-depends on systemd-sysv | upstart-sysv and both provide /sbin/runlevel.
15:40 <rbasak> pitti: as long as there isn't some broader way to solve this?
15:40 <pitti> rbasak: right, that was the idea; we don't want to hardcode systemd-sysv just yet, as we still want to support upstart-sysv for a while, and definiitvely need that on the phone
15:40 <pitti> rbasak: well, "init" is Essential:
15:41 <pitti> rbasak: it should really Not Happen™ that you don't have it
15:41 <pitti> rbasak: it used to be not essential, so perhaps matsubara was upgraeding from intra-vivid where this wasn't the case
15:41 <rbasak> pitti: ah, but that only happened recently, right? So matsubara might have had an older init package that wasn't essential?
15:42 <rbasak> pitti: maybe safe to invalidate this bug then. An essential package does indirectly provide /sbin/runlevel.
15:42 <pitti> rbasak: yeah; but "init" didn't exist in utopic/trusty either
15:42 <rbasak> So only upgrade from beta is affected when not using dist-upgrade.
15:42 <pitti> rbasak: I mean, apt-get upgrade from a previous release is already evil, bad, wrong, and crying "broken!"
15:43 <pitti> I'm not sure if we can ever get this truly right, "upgrade" shold not exist really
15:43 <pitti> "apt upgrade" is fine, but not apt-get upgrade
15:43 <rbasak> pitti: so are you +1 to mark the bug Invalid?
15:44 <pitti> rbasak: fine with me too
15:45 <pitti> I don't think additional deps on init hurt, but I'm not sure how much of a real use case the above is
15:45 <rbasak> Beta users need to know to dist-upgrade and not just apt-get upgrade.
15:46 <rbasak> Other stuff will be broken too otherwise

Changed in sysvinit (Ubuntu):
status: New → Invalid
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers