Rollbacks versus downgrades

March 3, 2009

One of the alternatives to package downgrades for problems like my concerns with trying Fedora Rawhide is what I'll call 'rollbacks': whole system snapshots that you can easily revert to. However, I'm far less enthused about rollbacks than I am about downgrades, and I don't think they're as good a solution for this problem.

The problem with rollbacks is that they are too comprehensive. In real life, you don't always detect problems right away, which means that you can wind up having also made unrelated system changes, changes that you want to keep. If you roll back to a pre-upgrade snapshot, you undo the upgrade but you also undo your unrelated changes too, and now you'll have to redo them (and perhaps track them down).

(At least this is my experience, but I think it's going to be true of many relatively non-minimal systems; if nothing else, you may not use certain features or programs very often. It recently took me several days to notice that I'd broken Flash in my browser, for example.)

This leaves me feeling that rollbacks are the wrong solution to this problem. They're a good way to handle something that breaks immediately (and a great way if you need really fast reversion to a working system). But they're not a focused solution in the way that package downgrades are, and so the further you from an immediate rollback, the worse their side effects can be.

In theory various change management systems can help you by tracking and perhaps automatically re-applying your changes. In practice I think that there are two problems with this. First, they're a lot of work to set up, especially on a one-off basis (and you're probably not going to have lots of machines in this sort of situation). Second, my experience is that some of the changes I make after upgrades depend on the new packages (I am customizing a new version of a configuration file, for example); if I roll back, I definitely don't want those changes to still be applied. There are semi-solutions to this, but they add even more complexity.


Comments on this page:

From 83.145.208.36 at 2009-03-03 02:36:36:

True enough.

As a note, some Linux distributions provide easy downgrading. While the system itself may not be easy nor comfortable to manage, Gentoo Linux comes to my mind in this regard. It has been years since I used this Linux flavor, but from my memory the typical workflow with the "rawhide version" of Gentoo was pretty much what you describe: update X.Y.Z packages, and if Y breaks, try a fix; if a failure, fail back to the previous version, leaving X and Z to their current versions. Surprisingly enough, this actually worked.

But I would like to continue by observing that the time is never on the side of system administrator.

And continuing your last sentence, perhaps the real problem is the ever-growing complexity of the systems. It is somewhat ironic that we need -- or will need some day -- complex tools to manage complex systems.

By cks at 2009-03-03 13:05:47:

I think that the real issue is that the problem is inherently complex. Basically we're making three different sorts of changes: things that are independent of the package versions, things that are purely to fix a package, and things that customize a package to do something that we want (where we would have the same goal no matter what the package version is, but the specifics of achieving it vary).

To make things less inherently complex I think you'd have to figure out ways to turn the third sort of change into the first sort, and then get rid of the second sort of change entirely.

Written on 03 March 2009.
« Some gotchas with ZFS in Solaris 10 update 6
The ASUS Eee PC versus the Dell Mini 12 »

Page tools: View Source, View Normal, Add Comment.
Search:
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Tue Mar 3 00:18:19 2009
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.