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

Re: upstart: please update to latest upstream version

On Fri, Feb 24, 2012 at 05:02:25PM +0100, Goswin von Brederlow wrote:
> On Fri, Feb 24, 2012 at 11:31:38AM +1100, Russell Coker wrote:
> > Finally one benefit of an event based booting system is that it won't become 
> > stuck if one daemon hangs.  I've had problems in the past when one daemon 
> > didn't start up and that prevented other daemons from starting due to the 
> > sequential processing of init scripts.

> One drawback of an event based booting system, at least the way upstart
> implements it, is that it won't recover when things fail.

> Something fails and the event for it simply isn't generated. Anything
> that depends on the event simply keeps waiting and waiting. There is no
> recovery possible, like asking for the root passwd to start an emergency
> shell.

I don't find this to be a valid critique of upstart or event-based booting.
Sysvinit doesn't give you an option to get a root shell either when
something in the startup hangs and blocks the boot.  That you've encountered
something that causes the startup to hang is a bug, whether that happens
with event-based or sequential (or dependency-based) boot, and I don't think
it's correct to characterize this as a bug that happens more frequently with
an event-based boot than with other models.

In the Ubuntu implementation of upstart, getty's are spawned on ttys 2-5
immediately upon reaching runlevel 2 or 3, just as they are in Debian
sysvinit; and runlevel 2 is entered as soon as the filesystem is mounted,
the network has been brought up, and any legacy scripts in /etc/rcS.d have
been run.  There's support for skipping unavailable mounts in the case of a
wrong /etc/fstab entry blocking the boot, and there's a timeout to proceed
with boot anyway when the network fails to come up as configured; so this is
no less robust than Debian's sysvinit implementation, and as Petter points
out, it actually gives much *more reliable* behavior in the event of slow
disk/network events at boot time or transiently missing filesystems.

Now, parts of this design were hard won, based on issues encountered in the
first iteration of event-based booting in Ubuntu.  Since that first
iteration is present in the only Ubuntu LTS release to date that uses native
upstart jobs, it's possible this is where you're coming from.  But I can
confidently say that these were growing pains that have been overcome
(thanks in large part to the insights of Clint Byrum) and there's no need
for Debian to repeat Ubuntu's past mistakes here when implementing upstart

Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek@ubuntu.com                                     vorlon@debian.org

Attachment: signature.asc
Description: Digital signature

Reply to: