Over the years, I’ve seen some pretty wild GNOME bugs. Bugs that result from strange unexpected interactions or where debugging leads to surprising places. Bugs that make me laugh out loud and think “wow, wow, wow.”
I have forgotten all of them. Can’t think of a single example. What a shame!
Hmm… see, I feel bad singling out any one particular app / bug. But, this one has been fixed (well… at least, worked-around), and it was pretty entertaining, so I’ll go with it.
A couple of years back, if you had a VM running in GNOME Boxes, and then went into a terminal window and ran gnome-boxes --help, instead of listing the available command-line parameters and usage it would instantly close your running Boxes session!
IIUC, GApplication’s built-in --help would trigger a DBus request. If there was no existing application instance, it auto-spawned a new new one to process the call. But if there was a Boxes instance already running, that existing process would be listening on the appropriate DBus interface, so it would receive the request.
Unfortunately, GApplication implemented not only the “dump help text to stdout” part of the standard help functionality, but also the exit() that immediately follows in most programs. (I don’t know if it still works the same way, but at the time it apparently did.)
And that didn’t work out so great, if the request was being handled by a preexisting instance of the application. The help text would end up on the original graphical Boxes process’ stdout, instead of going to the terminal where the gnome-boxes --help command was executing. And any request for help was instantly fatal to all running Boxes instances — no matter when, or for what purpose, they had originally been launched.
Of the top of my head there is the time heh when GLib didn’t handle LC_TIME quite right, and would end up producing invalid unicode. Relativly uninteresting in and of itself, but in practice shell crashed the moment you enter March, but only whilst German.
This one in Fedora 36 when locking the user session, then choosing to switch to another user, then the shell crashes and restarts, and I lose my locked session.
This was in line with what I was looking for here: code that goes wrong in a particularly surprising way, resulting in strange effects elsewhere.
I found another example. Removing an obsolete environment variable caused gnome-shell to load libproxy, which loaded an incompatible version of mozjs, which caused the login screen to enter a crash loop.