First Impressions of Systemd, and They Are Not Good
changelog.complete.org
changelog.complete.org
The biggest problem I've had with systemd (I now have about 200 machines running it/Jessie) is that I tend to blame everything on systemd... DHCP problems on boot! Must be systemd! (It wasn't...)
RHEL7 and the clones have systemd v208. Debian Testing just had v215 arrive. Freeze is quite soon, so it looks like 215 will be the systemd version that ships, so the packagers will have to backport security fixes to it for the life of Jessie (say 2 years or so). Just wondering how much work that will be if systemd continues to iterate at the speed it is doing...
PS: why so many 'machines' (desktop clients, workstations?) running an unstable Debian I'm idly wondering...
Genuinely curious here. There must be an upside to this model, can someone tell me what it is?
Arch is great but it breaks all the time. They make major changes that are only documented on the blog. It's very different.
My arch install literally never breaks. I haven't had any problems at all for years.
I suppose if you really needed to keep rolling you could temporarily switch to unstable.
"Seems like a needless risk and pain."
And the purpose of the freeze is to iron all that out so it doesn't happen.
(edited to add, I'm sad seeing OP get downvoted. His post history shows hes an Arch guy and likely genuinely doesn't understand release tagging. As a Debian user since '97 I am not surprised that there exist both people who don't know the peculiar arcana of release tagging and there are people who are experts at it, so his confusion adds a little value to the conversation. Down arrow should mean a decrement of net worth of the conversation. People are learning things from his mistake, a down arrow is not an assessment that OP got a technical test question wrong. And I had to edit this about ten times to phrase it correctly.)
I am getting the impression that Debian Testing isn't really used in the sense of, "Be a nice volunteer and run this thing that has problems so we can fix them," which is what (to me) is implied by the name "testing." Rather, it seems to be "here is a (mostly) rolling release version of Debian, if that's what you want." In other words, it almost seems like "Debian Rolling" might be a more apt name, in a sense.
The thing is, as a user of Arch Linux (without a ton of other experience), I just don't have problems with a rolling release. For me, things don't break, and it just works. So it feels to me like Debian's whole release philosophy is based around the idea that things have to break all the time and be fixed carefully, and that just doesn't sync up with my experience. So I'm trying to figure out what is missing from my worldview.
Thanks for defending me. I think might be somebody (maybe multiple) who doesn't like me and just downvotes all my comments, but I don't have any hard evidence.
> implicit guarantee of "you have to change EVERYTHING
> all at once every few months"
This is a strange conclusion to draw. What makes you think that debian/stable requires updating everything all at once every few months? To be honest this does not even sound like a fair characterization of running unstable.I run fixed release distros on production servers/devices. It's important to be able to install a new package on a machine and not have a hundred dependencies need upgrade, break or conflict. And lots of packages are available in backports when you really do need a newer kernel on Wheezy (https://packages.debian.org/wheezy-backports/kernel-image-3....).
Isn't that an argument for rolling release? I don't see how this would support using fixed release distros.
Now, you can get there with your own repos and a rolling distro. Or you can accept a test/upgrade cycle for a fixed release distro every half year or every year. I personally think the latter is less error prone.
Having defined my limitation in the observation, I'd just like to point out that, when it comes to distribution stability, for large server deployments, there is safety in numbers. Should a problem occur in a "stable" package, the odds that you are the first one to find the error are smaller with popular server distros (RHEL, Centos, Debian) than with less popular distributions. It's not a statement regarding the intrinsic quality of the distribution. It is a statement regarding the overall quality of the distribution + installed base.
All in all, for a distribution to dislodge entrenched players, for this use case, it will have to be an order of magnitude more stable.
Debian testing, however, isn't a proper released distro -- it's sort of a mishmash between a perpetual beta and a rolling release. Debian stable has proper releases, and Ubuntu was started largely as a result of people who wanted more frequent Debian releases.
I think that's a good point and that makes sense. And I agree with that from my experience. However, I generally think that one should not wait months to do updates.
Compared to that testing does both: typically similar frequency of security-related patches (but not guaranteed!) as stable -- and also migrations of new packages from unstable as soon as they "settle down" (and in "reasonable" sets, so that dependencies work).
So, you want a backported fix for the bash bug, in bash 4.2, but not upgrading to bash 4.3 -- possibly breaking somehting depending on 4.2 behaviour (something other than an exploit for shellshock, that is).
(Now, bash is pretty stable, so may not be the best example -- but the point remains).
If you're running testing, in addition to apt-listbugs, you want to have a look at "aptitude safe-upgrade/upgrade" vs "aptitude dist-upgrade" (or apt-get upgrade vs dist-upgrade). A dist-upgrade can be a little bit more invasive, and typically warrants some more vigilance than a mere "safe-upgrade". I don't think I can remember a "safe-upgrade" ever breaking anything in my ~14 years of using Debian. It's pretty safe to script to run automatically, unless you have very strict policies on uptime/predictability.
The non-rolling OSes I use - RHEL, OS X - have longer than "every few months" release schedules.
My computer is just a tool. I just want it to work so I can get things done. Debian has been good about that in the past and enjoys the support of a very large, dedicated, active developer community.
Maybe Arch is better than Chakra at managing their updates (although Chakra was basically a modified Arch distribution), but my experience with Chakra left a really bad taste in my mouth for the rolling release approach.
FWIW, Debian's "update EVERYTHING" every few months never broke things as badly for me as Chakra's frequent smaller updates did.
Then Debian stable or even CentOS (10 years support) is definitely what you want, you are almost the definition of an Enterprise Linux user/adopter.
How in your opinion could we signpost that idea to people who are new to Linux?
If I can be unabashedly honest for a moment, I think the problem with Linux advocacy isn't the software any more, it's the advocates. The advocacy seems to be coming from a lot of people that are always after the latest, newest, greatest thing, people who are actually uncomfortable when features aren't changing all the time. They tend to be very vocal about recommending anything that comes with frequent updates, whether it's browsers or Linux distributions.
But that's not what the larger untapped home market wants. They just want things that work, and they want things not to change on them all the time. They only have enough space in their daily lives to learn new features every once in a while; any more than that, and they get frustrated. I hear this from our customers all the time, and as I get busier, I'm really starting to understand their point of view better. (As an example, we've recently been seeing more of our customers switching back to Internet Explorer on Windows 8 systems.)
So as far as signposting goes, I think boring, stable, slow-moving distributions like Debian stable should be the default recommendation, and then Arch or similar recommended as the really cool cutting edge thing for hobbyists and early adopters. That is, Linux by default should be marketed as stable and safe and not changing all the time, with the option of making it a bit more fun.
We almost opted to recommend Linux to a bunch of our customers who were moving off of Windows XP this Summer, but the feedback wasn't great on a couple of experiments and finally we decided we were too small to really afford the support costs. It was a big missed opportunity though and I'm going to take another look at doing it next year.
So perhaps some demos using an Ubuntu LTS usb stick (xubuntu or stock Unity) might be best. 5 years, pretty stable.
I find Stella Linux 6 (CentOS remix with multimedia) has had some acceptance with a friend, but the NuX repositories are 'one man and a git account'.
This is the sort of thing I expect my package manager to do for me.
That said, I like the rolling model so I use arch. I wish I could find a better rolling distro to choose.
But otherwise everything else basically just worked.
I'd say he was dogfooding, given that he's a Debian developer.
(Edit: fix typo)
After the freeze there'll be two months to sort out critical bugs like the ones in the article, but this possibly wasn't the best time to do a big upgrade of an edge-case system. Well, unless you want to find and report bugs :)
No, it's not. That said, if you want to run Debian testing, do yourself a favour and also install apt-listbugs -- it'll hook into apt, and alert if the update has any bugs filed against it (the update you are installing, that is).
I recently moved my laptop from Debian/stable w/backports to Jessie (testing) -- and it's been fine (had to do a reinstall anyway due to shifting around partitions, because I needed more space for windows so I could create an installer for windows 8.1 -- didn't have enough free space to ... don't get me started).
TL;DR: systemd breaks badly (at the moment) when having to deal with non-standard setups (ZFS, cryptsetup)...
As for the eternal systemd debate... if someone as knowledgeable as the author (his publications: http://www.complete.org/Publications) can't debug it... we'll have fun times ahead.
So you're saying that upgrading a custom tweaked configuration grown over the years to be just perfect for that user is going to break when converted to non-customized stock systemd packages?
The configuration in question has grown over the months and likely used multiple iterations to get right. You can't expect a stock systemd package to be a perfect drop in replacement.
What we really need in order to form an opinion of how badly or how well systemd is going to work, we need real-world examples of systems being upgraded into which only minimal tweaking of the init system has gone.
Like all the Arch and Fedora users who are not really complaining about systemd making their systems unstable or causing issues with day to day usage.
[0] http://www.freedesktop.org/wiki/Software/systemd/ ("compatible with SysV and LSB init scripts", "It can work as a drop-in replacement for sysvinit.")
That's all fine and possible expected.. my only concern is just that this appears to be very difficult to debug. The author is as knowledgeable as you can hope for in a Linux user and is unable to get meaningful debug output.
All of these things are IMHO legitimate concerns that should be addressed by the systemd community or the Debian systemd packagers.
Surprise surprise. Assume nothing, test everything is a old mantra in various engineering circles iirc.
I am in that group (having a bunch of debian servers, ranging from "~5 years old upgraded one release at a time" to "~6 months old and installed from scratch"); converted them all to systemd; have found it to work fine and I am enjoying the extra features :)
Come on, it's a little more specific than that. I have machines with zfs, machines with cryptsetup, all of them run arch and systemd, never had any problem. But of course, I don't have sysvinit scripts.
Truly, this will be the year of Linux on the desktop--because it probably won't be on the server much longer, right?
my other favorite of her's:
"Mommy, what's Linux?" "That's what systemd used to be called, Becky."
* Error in `systemctl': double free or corruption (fasttop): 0x00007f26ef8089c0
Bugzilla is public, the bug changes are also public. Show me that this is a trend. You said it is "inevitably marked WONTFIX", I say you're making stuff up. You raise this, you prove it. Good luck!
This wasn't the first time, either, but I'll leave that as an exercise for you. Simply look at what bugs in systemd/pulseaudio are closed as WONTFIX. It's a simple query.
Also, I recognize your nick from the SystemD IRC and forums. Nice to see you stopping by to defend your favorite project.
We're all moving to freebsd.
I have never heard of Illumos which also implies I've never heard anything bad about it. Although I do personally know people who swear by freebsd, so ...
I would probably use a *bsd to avoid all possibility of systemd issues, and
http://en.wikipedia.org/wiki/Comparison_of_BSD_operating_sys...
implies the big "thing" for freebsd is "usable for any purpose" which is the old Debian "universal OS" concept I like so much.
I would strongly consider openbsd for something bare out on the internet not behind a stateful firewall and my limited experience with netbsd is its pretty awesome but being able to boot on a PDP11 necessitates some excessive old code. I'm astounded by retroBSD on PIC32 arch.
And now I am, too. Thanks for this.
It's the open fork of OpenSolaris after the Oracle takeover of Sun. Many ex-Sun engineers work at companies that use/contribute to Illumos.
That said, I haven't had a chance to try other Illumos distributions like SmartOS or OpenSXCE. Maybe the sysadmin experience is better on them.
[1] http://www.linuxquestions.org/questions/interviews-28/interv...
Ctrl-F systemd for the section around the middle. I imagine it depends on udev/eudev and logind dependencies in desktops and then d-bus.
And until bhyve[2] adds support for Windows guests (which they plan to do) I still need Linux's KVM.
systemd on debian tries to reuse far too many /etc/init.d scripts, whose quality and performance I find questionable.
Follow the guide on http://www.holgerschurig.de/linux/systemd.html to get a good experience. You can also use my scripts (cf http://libreboot.org/docs/future/#fastboot) to compile your systemd
For the specific zfs problem, I can't say for sure (I use xfs), but a simple script you wrote yourself is usually the best. I also had fstab related errors for swap (I use luks) until I disabled the automatic stuff and wrote a replacement script.
systemd is well done and such fixes don't take long, once you understand the logic of it. (usually a symlink to /dev/null to disable the script and a few lines of ascii text for the replacement)
My results: on a thinkpad x60 (2006 era laptop), after coreboot, I boot in about 3 seconds, cf http://www.coreboot.org/pipermail/coreboot/2014-July/078215.... (link to a youtube video of another person doing the same thing). Suspend works very well out of the box, and even better (ex: renewing dhcp leases) after adding a few scripts.
systemd makes many things possible and easy, but with debian at least, the out-of-the-box experience has to be improved. Nothing impossible if you have say a day to spare to learn how systemd works and write your fixes.
Going to take lifetimes of single tasking / blocking task reboots to run a net profit off that investment of time.
[0] http://www.freedesktop.org/wiki/Software/systemd/ ("compatible with SysV and LSB init scripts", "It can work as a drop-in replacement for sysvinit.")
Now that it's been adopted, using that supposed
compatibility is "doing it wrong".
It has only been adopted in non-Stable distributions of Debian... I haven't seen anyone belittle anyone over "compatibility concerns"; I have seen folks belittled (especially in this thread) when they complain about imperfect stability in distributions which are not Stable.At the risk of appealing to authority, I'd be interest to see posts from Debian/Ubuntu maintainers in which they express frustration at the various problems systemd is causing them. I haven't seen any and would appreciate hearing from them or getting some links to their posts.
EDIT: clarified area of "belittlement"...
> I am a developer for the Debian GNU/Linux operating system, and have been since the late 1990s
> I run Debian Testing and was able to upgrade ~5 machines without a hitch.
So which is it? Is systemd in Debian hitch-free or not? Or do you only care about your own systems and no one else's?
> I have seen folks belittled
Meaning you've already lost the argument.
> I'd be interest to see posts from Debian/Ubuntu maintainers
Yeah. Screw users, right?
systemd, land of ever-shifting rhetoric. You guys should get out of the software development business and run for Congress.
According to you because I like systemd: - my opinion is "screw users" - belittled you with compatibility concerns - arguments are nothing more than rhetoric.
I find such discussion style rather poor. Instead of diving people into pro/con or black/white (with us or against us), try expressing things a bit more granular. Further, it seems you're out to win arguments by selectively quoting and changing the meaning of what you've quoted.
If there are bugs in systemd, they have to be fixed. I'm one of the biggest systemd advocates. This combined proves you are incorrect on what people liking systemd say or suggest.
Philosophically, yes. Realistically? The behavior of some of the people on the systemd bug tracker[1] is the single most convincing argument against adopting it.
It might break things? Sure, it's a pretty massive change.
People are going to have to re-learn how to do a lot? Again, it's a pretty fundamental shift in a lot of ways. This is expected.
The developers will fucking backtalk you[2] and make political issues out of clearcut things? Uh.. no. That's forkworthy behavior. That's dysfunctional enterprise behavior, which is something I'd imagine the average hacker hates instinctually.
And sure, in the end, those bugs were addressed, but it took an outburst from Linus and widespread, public coverage (and I'm sure no small amount of offline discussion among the systemd folks) for it to happen.
Poettering is on record as wondering why systemd attracts so much hate. He only need look in the mirror.
[1]: https://bugs.freedesktop.org/show_bug.cgi?id=76935
[2]: http://www.muktware.com/2014/04/linus-torvalds-happy-systemd...
I have seen loads and loads of examples where "no" is said in some email conversation based on technical arguments.
> And sure, in the end, those bugs were addressed,
The bug was fixed in systemd git before Linus got involved.
> Poettering is on record as wondering why systemd attracts so much hate. He only need look in the mirror.
Here you're being an ass. This bugreport was not handled by Lennart. Lennart is also not talking about disliking systemd, he's talking about people taking things way too far towards him. He talked about people raising money to hire an assassin.
"Something else" shouldn't break in the first place.
It's obvious you're not a programmer.
Where?
> It's obvious you're not a programmer.
I certainly am, and he's right. Stop trying to deflect blame. The kernel isn't responsible for preventing init from doing stupid things, init shouldn't do stupid things.
And most importantly, when your code does stupid things that breaks users, it is your responsibility to fix it, no matter what you think anybody else's code should be doing. If you can't accept that, you're a menace, and need to stop writing code.
From G+
"I guess this does mean that we have to apply my patch to rate-limit messages into the kernel."
......
"+Greg Kroah-Hartman: I really hoped that you could push the trivial and obvious one-liner through. What’s going on here?"
From LKML
"Steven, Borislav, one thing that strikes me might be a good idea is to limit the amount of non-kernel noise in dmesg. We already have the concept of rate-limiting various spammy internal kernel messages for when device drivers misbehave etc. Maybe we can just add rate-limiting to the interfaces that add messages to the kernel buffers, and work around this problem that way instead while waiting for Gregs fix to percolate?"
He even goes so far as to say:
"I don't think we should try to protect against willful bad behavior unless that is shown to be necessary. Yeah, if it turns out that systemd really does that just to mess with us, we'd need to extend it, but in the absence of proof to the contrary, maybe this simple attached patch works?"
Showing that even if systemd tried to get around the rate-limiting just to piss off the kernel developers, that it's a bug they would fix (which is the wrong stance for whatever it's worth; you should be using defensive programming, not waiting for someone to abuse it first, but at the very least shows that it's a kernel issue).
> I certainly am
Certainly not a very good one.
When a library has an error, is it your fault for triggering that problem, or do you log a bug with the library?
This isn't rocket science.
> And most importantly, when your code does stupid things that breaks users, it is your responsibility to fix it, no matter what you think anybody else's code should be doing. If you can't accept that, you're a menace, and need to stop writing code.
Greg Kroah-Hartman himself (on G+) said "the original bug that was causing the syslog spew to stop the box has been fixed in systemd.".
Please don't contribute to a conversation if you know absolutely fuck-all about it. Spreading misinformation is one of the world's worst problems, and you're simply contributing to it.
It is sad but totally unsurprising that you can't find ways to advocate for systemd without stating obvious lies about its detractors.
I find it rather obvious you have something against anyone liking systemd. After above quote, you followup with "screw users". I like systemd, you react in the same silly way to me. Overly aggressive, pretending to be a saint, while painting me with a broad brush, while saying I'm doing that. I find you a little bit crazy.
I find it rather obvious that you either don't know what "proponent" means, or you can't distinguish between one who likes something and one who advocates for something. Either way, you are being extremely offensive. Unlike systemd proponents, I don't care what other people like. I care what they try to force me to use.
> After above quote, you followup with "screw users".
I also find it rather obvious you don't have any concept of context. "screw users" was in response to someone who clearly stated they cared about maintainers, not users.
To be honest, I wouldn't be surprised if it's the latter. It turns out that a lot of Linux distros really don't have very adequate systemd bootstraps at this point, which you'll find the systemd developers admitting (including, and in my personal experience, especially for Fedora): http://freedesktop.org/wiki/Software/systemd/Optimizations/
When you factor in the fact that Debian and other distributions have some absolutely strange packaging policies concerning when and to where to include systemd as a dependency, coupled with the fact that most distros still don't have good mechanisms for separating hard and soft dependencies, and you get some pretty confused default configurations.
I once tried compiling and booting from systemd on a Lubuntu box, out of my own curiosity. It worked, and there were already some predefined unit files from systemd-shim and various system packages. Performance was good. I tried upgrading my system... the process is absolutely broken, due to preinst/postinst scripts assuming Upstart. Sometimes a package will get successfully unpacked, sometimes it won't. Error messages galore.
Considering systemd's extensively rapid evolution, I don't see integration work in most distros stabilizing or being optimized very soon.
They don't see the benefit of keeping critical system components simple, they don't listen to criticism, they make promises they can't keep, and they've bitten off way more than they're capable of chewing. The only part I really can't figure out is why major distros have actually decided to make the switch way before any of the tech is ready.
Alternatively, build a similar rescue option in to your boot menu; if that's broken you've got no choice anyway.
// yes, most of the time I just put fallback/rescue options in the boot menu
I find the entire blogpost rather encouraging. Let's get those bugs fixed as well! Doom and gloom is rather weird attitude IMO, it's on loads of distributions and for various releases of those distributions. It is not without bugs, first release within any distribution is going to have a few issues. Fairly logic that with aim of Debian (everything has to work), it'll take a bit longer.
1. You're doing it wrong 2. Of course, if you use <insert something here>, then it won't work! 3. If you spend a month, it is simple! What, are you lazy? 4. If you hack these bits, disable these bits, run some pointless commands here, then presto it works!
Anyone else reminded of the Apple "you are holding it wrong" response to the iPhone antenna short?