A call for votes in the Debian init system discussion
Posted Jan 26, 2014 18:11 UTC (Sun) by ovitters (subscriber, #27950)
I didn't really see any concrete advantages for going for Upstart on Linux in the discussion if you take everything into account. So, also taking into account that original author agrees it has some design flaws as well as the proven low bug fixing rate.
The portability is IMO going too quickly into "solution mode" (learned such stuff from project management ideas).
Posted Jan 26, 2014 20:16 UTC (Sun) by jspaleta (subscriber, #50639)
On the surface, the effort to port upstart to bsd looks like a good thing for bsd. But dig deeper, and you look at the 2+ year old, deep design, bugs against upstart, and you look at what Scott has communicated with regard to the rewrite necessary to fix those bugs by using more linux kernel specific mechanisms, like cgroups. And really I'm left wondering how on earth the currently upstart team can really consider porting upstart to any other kernel when the need for a significant rewrite of upstart is just hanging out there on the dev roadmap that Scott left behind, unaddressed and untended to.
Porting upstart, when those deep longstanding bugs are still open is asking for trouble. It's a trap!. If there's no game plan at all to address those bugs in a portable way, is it really in Debian-bsd's best interest to depend on upstart? For all the sincerity of the current upstream upstart maintainer team..they just don't have the manhours to get it all done on behalf of Ubuntu and all the Debian kernel flavors. They can't even get this deep stuff fixed for Ubuntu and its been a full 2 years for this stuff. So for any Debian kernel porting team to realistically consider relying on upstart as the default, they have to be prepared to dig in and help with the upstart development on some of these deep issues (like moving away from ptrace usage) And here again, I would be shocked if these porter groups found the manhours to contribute (even to a CLA-less Debian specific fork of the codebase)
And its not just "expect fork" and "expect daemon" syntax, which upstart proponents are now suggesting to remove entirely from Debian's fork of the codebase. No the problems are deeper than that. Though I do find it ironic that proponents are effectively suggesting that upstart native functionality be forbidden to be used by Debian developers, instead of _fixing_ upstart's expect logic to actually work as...expected. So that says a lot right there about the manpower and expertise available to address existing design problems in upstart running on linux, without even touching on whether the expertise and manpower are there to extend upstart further with more features or port it to different kernels. The people currently most knowledgable about how upstart internals, want to neuter upstart's "expect" logic to avoid problems. Great, just great.
Posted Jan 26, 2014 20:27 UTC (Sun) by AlexHudson (guest, #41828)
I was pretty interested in Hurd a number of years ago, because it was doing some interesting things that Linux still wasn't doing. Why would you want to copy the same init system as Linux? With the system of translators, for example, it's not clear to me that the ideal tool would look the same at all - in the same way the various tools that support them don't look like Linux tools.
It's useful to have the same / similar tools available under different kernels, but there has to be some difference otherwise it's just not worth having the different kernels. Linux is moving forward with a new init, the other platforms will do too, and they don't look much like systemd that's no bad thing.
Posted Jan 26, 2014 22:10 UTC (Sun) by tzafrir (subscriber, #11501)
In this case the Upstart (and OpenRC) people actually provide code. Nobody provides a port or partial reimplementation of systemd for those ports.
Posted Jan 26, 2014 22:31 UTC (Sun) by ovitters (subscriber, #27950)
Posted Jan 27, 2014 0:16 UTC (Mon) by tzafrir (subscriber, #11501)
> I do find it ironic that proponents are effectively suggesting that
> upstart native functionality be forbidden to be used by Debian developers,
> instead of _fixing_ upstart's expect logic to actually work as...expected.
(That's regarding "excpect fork" and such)
This functionality should not be needed in a properly-written service, as you should not write a daemon that forks. A forking daemon is likewise discouraged by systemd and will be likewise discouraged / forbidden by policy if systemd is chosen.
Posted Jan 27, 2014 0:31 UTC (Mon) by jspaleta (subscriber, #50639)
It's one thing to draw a line in the sand and say debian isn't going to allow any forking daemons... going forward. They are allowed now under initscripts, right? So that's an interesting bit of backward compatibility drama the project is going to go through..convincing maintainers to change from forking to non-forking across the board.
But that doesn't say anything about whether upstart actually WORKS as designed. Your just paper over one problem with in upstart at best via a policy fight. It can still lose track of running services via problems parsing the embedded start/stop scriptlets that upstart jobs allow. Is deb going to also disallow those scriplets to workaround upstart's design flaws? Good luck with that.
Posted Jan 30, 2014 10:04 UTC (Thu) by hirnbrot (subscriber, #89469)
I'm also seeing 42 of what appear to be legacy init scripts in /etc/init.d, including a 364 line monstrosity to start udev (which includes mounting a tmpfs over /dev).
So: Yes, it's very much used in the wild, and if even Ubuntu hasn't fully converted to upstart in 7 years, I don't think there is any distribution that has.
Posted Jan 26, 2014 22:44 UTC (Sun) by johannbg (subscriber, #65743)
To me it's dead given that GNU/kFreeBSD should be using openlaunchd  and GNU/Hurd should be using dmd both of which seem to be entirely left out of that huge thread ( the only thing Hurd init resembles init system in GNU/Linux is it's name more or less it's more of an bootstraping thing kinda ).
So basically the outcome if I was part of the Debian community and I had anything to say in the matter would be...
For GNU/Linux systemd is the choice
For GNU/kFreeBSD openlaunchd is choice
For GNU/Hurd dmd is the choice
With rest of the init system phased out and eventually dropped from the distribution and people focusing supporting only one for each and only these three init system as the way forward in Debian.
But hey that's just me by all means continue debating and wasting valuable migration and integration time of systemd for Jesse doing just that.
By my account of emails on that huge thread the entire service/daemons Debian ships could have been migrated to native systemd units four times already if the energy people have put into this debate would have been spent in doing just that instead.
Posted Jan 27, 2014 0:07 UTC (Mon) by tzafrir (subscriber, #11501)
OpenRC should give you an idea of how long it takes to integrate an init system. It's still only in the experimental release, even though efforts to port it to Debian have started even before Wheezy was released.
So, if you think any of those two tools would work: just show us the code. A working Debian package. Please make sure it is ready in time. Jessie is frozen in Nov-5 and there's much integration work to be done before that.
This is not maturity as I understand it, stagnation is not maturity.
The code has never reached maturity and is stuck in perpetual adolescence.
Posted Jan 27, 2014 1:37 UTC (Mon) by nirbheek (subscriber, #54111)
Posted Jan 27, 2014 6:32 UTC (Mon) by jspaleta (subscriber, #50639)
bug report indicated that conditional event parsing does not work as expected. Upstart lets you build event conditional statements like start on A and B or (C and D) but they do not work. Such constructions are considered valid syntax for job files...but they do not work as one would plainly expect them to.
Scott, as maintainer at the time, comments about "...event operator stuff being utterly broken..."
bug report indicating in embedded scriplets logic result in jobs not restarting when requested to.
Scott has a terse comment concerning lack of pre-stop coverage.
A pathelogical pre-stop bug report that Scott filed. This time upstart loses track of a running service entirely! That's a deal-breaker. This is as bad as the expect fork failure situation. Is Debian going to make it a policy to forbid all pre-stop scripts in Upstart job files to paper over this problem as well?
Scott makes a terse comment about needing to re-think the start/stop scripts and the event model.
bug report on event unblocking race condition
Scott, makes a terse comment with a sketch as to a solution to keep the events blocked, but clearly its never integrated.
bug report indicating upstart fails to unmount systems cleanly:
read more on this specific issue and how systemd handles this from Lennart's G+ account recently.
bug report indicating failure of expect fork.
Scott, as maintainer at the time, writes in a comments to both bugs about a pending rewrite to fix this. His proposed solution, to remove ptrace and to potentially use cgroups instead. He also speaks out against the introduction of pid file tracking as a fallback mechanism for job files to use as an alternative to expect fork pid tracking mechanism. Expect fork is still broken, upstart still does not allow pid tracking as a fallback.
So lets recap. the event handling is racey. The pre-stop scripts design is broken. The event conditional logic is broken, the start/stop command logic is racy/broken, the expect command is broken. What's left. Oh yeah... upstart's backwards compatibility for existing sysvinit scripts is good enough to rely on. But if you want to rely on anything upstart purports to bring to the table..get ready for dentist visit like fun time.
Posted Jan 27, 2014 6:46 UTC (Mon) by nirbheek (subscriber, #54111)
Posted Jan 27, 2014 10:19 UTC (Mon) by misc (subscriber, #73730)
I have also been pointed on this post, explaining that the portability of sysvinit is not really what people think it to be ( https://teythoon.cryptobitch.de/posts/on-portability-of-i... )
Posted Jan 27, 2014 11:07 UTC (Mon) by Cyberax (✭ supporter ✭, #52523)
Posted Jan 28, 2014 8:36 UTC (Tue) by geertj (guest, #4116)
Posted Jan 27, 2014 8:10 UTC (Mon) by tzafrir (subscriber, #11501)
How do you install openlaunchd on Debian? How do you install mdm or whatever it is called? How do you package their configurations?
Posted Jan 27, 2014 8:45 UTC (Mon) by johannbg (subscriber, #65743)
And as far as I know Debian has never "officially" released any releases with either kfreebsd or hurd which makes it even less sense that they have anything to say which init system will be the default in Debian GNU/Linux part.
The kfreebsd and hurd communities in Debian have to decide for themselves which init system they want to use since in the end of the day they are responsible for implementing,packaging and maintaining it that work should not fall onto other maintainers hands.
Posted Jan 27, 2014 10:29 UTC (Mon) by tzafrir (subscriber, #11501)
Posted Jan 27, 2014 16:26 UTC (Mon) by smurf (subscriber, #17840)
This is no longer true. There is now a sysvinit-package which is indeed essential, but it is empty and pre-depends on sysvinit-core | upstart | systemd-sysv. Problem solved.
Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds