Posted Thursday, 05-Dec-2013 by Ingo Karkat
In today's connected and dynamic world, software updates have become a necessity. Everyone wants to benefit from security and bug fixes, and the occasional added feature might be handy. Then why is it that even software professionals like me dread each pending software update?! Apart from the whole busywork of the upgrade itself (which is especially pronounced on MS Windows, where there's no consistent approach and every application has to reinvent its own mechanism), it's the potential for mayhem and confusion. A recent upgrade to Ubuntu 13.10 "Saucy Salamander" nicely illustrates this.
I first did the upgrade on a (playground) VM, which went well. My wife's notebook was next: Backup, upgrade, reboot, all's looking fine. Only a few days later does she discover that the underlying keyboard layout when using the Anthy IME has changed from her preferred German to US-English. (In her words:
Now when I press Y, I get Z instead!)
Then, I upgraded my secondary Linux development workstation at work. The upgrade hung in the middle, couldn't be restarted, and after a reboot, the whole system couldn't be brought up again. Oh well, stuff happens (hopefully only occasionally). Fortunately, I had a recent (working!) backup, and after the restore, the upgrade proceeded like a breeze. Ah, but the website it's hosting doesn't come up. A little research shows that the OS update bumped Apache HTTPD from 2.2 to version 2.4, and that has a different syntax for access control. Alright, so how do I adapt it? More research required. Issues like that make it really hard to assess how much effort an upgrade requires. It may be a quick couple of hours of downtime, with you only watching the backup and upgrade progress from the corner of your eyes, but it may also throw you into complete disarray, with you discovering problem after problem (and soon seriously considering a restore and opt-out of further updates).
It's natural that one wants to avoid such stressful situations; but apparently, this is a really hard problem.
You could have prepared by reading the release notes beforehand. Such documentation is like insurance: It (hopefully) defangs a potentially disastrous event (but only if you're actually covered, and most documentation is not written as diligently as insurance policies) through a fixed up-front investment. Unfortunately, most humans are predisposed to being lazy and rather take an optimistic chance that all will work out well than spending considerable time on something that might not be necessary.
At least for me, most of the challenges and learnings from an upgrade are actually interesting and fun (provided I have the time to tackle them). What's bothering me is the nagging doubt in the back of my mind that there still might be some as-yet undiscovered problems lurking in the system, waiting to catch me in the worst of moments. My next post is exactly about such an event, a few days after the upgrade, when I needed to rely on the system for the first time, and it failed me in frustrating ways.
Ingo Karkat, 05-Dec-2013blog comments powered by Disqus