Updated: August 17, 2019
Time for another and possibly last test of the 30th crop of the Fedora grain. So far, we had two. First, I did a fresh install on the Lenovo G50 laptop, with its UEFI + Intel graphics set, and it went quite all right. Then, I ran a similar experiment on the much older HP Pavilion box, with BIOS + Nvidia graphics, and this was a much more disappointing experience, full of bugs and hardware problems.
Still, overall I was pleased somewhat with what Fedora 30 delivered, and I wanted to do a third test, and that would be the upgrade of the Fedora 29 instance sitting in my eight-boot Windows-and-Linux setup on the Lenovo machine. With the system polished up all pretty and functional, this ought to be an interesting experiment, especially on the performance and compatibility fronts, given the changes and tweaks.
Click ze button
Well ... not really. I've done several in-vivo upgrades in Fedora over the years, and they have been rather reliable. I would always go the command line path with dnf, which consists of three steps. One, you need to make sure you have the latest updates. Two, you download all the necessary packages. Three, the actual install is done on next reboot in an offline fashion, so you can't use the system while it's running, sort of like Windows. I find this to be rather odd for Linux.
This process worked fine. I had 2.1 GB worth of downloads and some 4,800 packages were installed or updated. That's a lot. No third-party repos were disabled, so I also had updates for my entire set of applications. The initial update took about 25 minutes, then there was the download, some 10 minutes, and finally the actual offline upgrade, which took about 2 hours. This was quite long. Really long. Comparable to my Windows 10 upgrade, and longer than what it took to upgrade my 10-year-old eeePC machine. A waste of time.
The login loop strikes again
Merrily, I rebooted, tried to login, had an empty black screen with only the mouse cursor showing for a few seconds, and then Fedora 30 would fall back to the login screen. For some reason, it was refusing to reach my upgraded session. I tried both Xorg and Wayland, to no avail. So for the first time, I had a Fedora upgrade fail on me. Yay. Nah.
I tried to troubleshoot this, and for the millionth time, I found myself fighting the glorious systemd. Not having simple and clear logs in text format is such an annoying thing. I don't care about cloud instances and machines talking to one another. They can parse binary logs all they want. There should be a copy of the same data in human format, so that actual humans can get a simple view of the system state.
I spent about half an hour going through every possible log, with nothing indicative. This wouldn't be the first time I had Fedora go bad on me, and then provide no useful information on how to fix and recover the issue. In fact, this is one of the few distros that made me give up and rebuild the installation because of the obscurity of its log information. Very sad.
In the end, I decided to try my luck slash intuition. I was using a handful of Gnome extensions, and knowing how fickle this framework is, i.e. it tends to break across major upgrades due to changes in Gnome, I figured I might simply move all my extensions away, and see if that would unlock the login loop. It did.
Using the system ... finally
Now, the upgrade was complete. But it wasn't a happy one. Just look at the notifications on various errors. A random problem (that would be Fedora 29 still). Another random problem - that would be the MCE thingie on wake from suspend as I've shown you in the full installation review - no other distro has this issue, and Fedora was among several distros that wouldn't even boot on G50 in its first year of life until I've upgraded the BIOS. Then, a problem with gsd-smartcard, whatever that is. Possibly related to the login problems? Unknown.
My desktop also looked weird. I had moved all the extensions away but some of my Gnome configuration had been kept, like the application menu, which is enabled through Gnome Tweak Tool > Extensions. Not sure what gives.
I then tried to reinstall extensions - I decided to start fresh, and just grab the ones I wanted anew. The Gnome extensions websites threw a bunch of errors. Lo and behold, despite these errors, after the reboot, I did have the desired extensions. So it would seem they were installed just not enabled.
Apart from the all-text boot sequence, I noticed the boot was long. It would spend the 90-sec timeout waiting on one of the devices. I knew instantly that this was the same problem as the Ubuntu slow boot issue whereby an upgrade of one of the other distros would cause the swap partition to be formatted and then assigned a new UUID, and thus the distro would not be able to find the swap and wait like a tool. Now, I would always use the simple /dev/sdXY notation, like a HUMAN, but we have another example of machine syntax interfering with normal life.
Startup finished in 2.308s (kernel) + 5.764s (initrd) + 3min 6.954s (userspace) = 3min 15.028s
graphical.target reached after 2min 19.862s in userspace
So I changed this random nonsense:
UUID=9937b71f-c286-48ed-b9fd-16c217dedfaa swap swap defaults 0 0
To the good ole human format:
/dev/sda10 swap swap defaults 0 0
And Fedora 30 was back to its normal and rather quick boot times.
No self-healing mechanisms ...
What really annoys me is that this supposed "progress" where we have event-based userspace scheduling and notifications doesn't offer any value. Just obscurity. Instead of waiting 90 seconds for a device to appear, how about scanning the partition table for swap devices and then using that for instance, hm? Or if a desktop falls back to the login session, offer a safe mode like say Firefox has? There are tons of examples like this, where you have dumb machine functions that do zero validation and just hand off garbage to another machine component, and it's all meant to be done in some serverless cloud Utopia. Okay. Paying customers, cloud, buzzwords, I get that. But on the desktop? Used by actual humans? Does not fly.
So, any good?
All right, I finally had Fedora 30 running. First, good things. The system was, extensions notwithstanding, in exactly the same shape I've left it. All my programs and data were there, so this is a good thing. No regressions were introduced, it would seem. I noticed a slight performance boost as the result of the Gnome version bump and its tweak, but there were also the occasional CPU-spike stutters.
The stutters are also noticeable in the system monitor. The graphs refresh every second, but the transition from one frame to another as the timeline progresses horizontally is rather abrupt and jerky. I don't recall this being an issue in the past. So perhaps there are performance improvements in the system, but it's a long way until it becomes a smooth, elegant desktop. Memory usage remains unchanged - and the CPU values are somewhat higher than in Fedora 29. Not sure what gives, or if this is an artifact of the upgrade. But then, I've had no problems with past upgrades. And that's all that I really care about in this case.
Alas, my Fedora 30 experience started strong with the first review and soured since. The test on the old laptop with Nvidia graphics highlighted numerous problems, including almost ending up in an unbootable state due to the wrong driver version being selected by the software center. With the in-vivo upgrade, I almost ended up in a similar state due to some incompatibility with extensions. I wasn't pleased by other glitches and errors, and the performance improvement margin isn't as stellar as the clean install test.
All in all, Fedora 30 feels like a rather buggy release, with tons of problems. I think versions 27 to 29 were quite robust overall, at least the Gnome version, but the latest edition is quite rough. That would mean I'd advise people upgrading to take care of their data, remember the possible snags like extensions, and triple check their hardware is up to the task, because apparently QA isn't cool anymore, and no one else will do this for you. All in all, Fedora 30 is very bleeding edge, finicky, definitely not for everyday use by ordinary desktop folks. It's a dev tool for devs, so if you want something stable and boring, search elsewhere.