[Bug 941922] Re: do-release-upgrade races puppet for file contents
Brian Murray
brian at ubuntu.com
Wed Feb 29 15:47:59 UTC 2012
** Tags added: dist-upgrade
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to update-manager in Ubuntu.
https://bugs.launchpad.net/bugs/941922
Title:
do-release-upgrade races puppet for file contents
Status in “update-manager” package in Ubuntu:
New
Bug description:
This is something of a larger problem with configuration management,
but if puppet is running while do-release-upgrade runs, puppet may re-
assert contents of files that the package manager has just changed.
Puppet allows you to key off of the currently running distro release,
so one could imagine boot-critical configuration (filesystems, etc)
being set to e.g. Lucid versions just before a reboot into Precise.
If the reboot succeeds, puppet would subsequently deliver the Precise
versions and things could sort themselves out, but the reboot could
well be stymied by older Lucid versions.
The canonical-memento puppet manifests include a lot of safety
features to prevent precisely this scenario: we insist that /etc be
maintained in bzr, and we halt all configuration management if there
are uncommitted changes there. This means that once the package
manager changes any file in /etc, puppet refuses to run. Not everyone
will be as careful as we are, and even our system is not atomic.
This is of course not specific to do-release-upgrade, and it's a
problem any time you upgrade a package. It's just most dangerous
during d-r-u, because of the breadth and depth of changes.
The upgrade could shut down the puppet agent before upgrading, but
once puppet itself is upgraded that will trigger a restart. It's
probably best to do `puppet agent --disable` before shutting down
puppet. Once this is done, it may be worth warning the sysadmin at
the end (perhaps while advising a reboot) that puppet was running
before the upgrade, and that something like `puppet agent -t --noop`
is useful for seeing what changes puppet would make.
Of course, it's an architectural flaw in puppet that --noop runs still
upload exported resources to the database, and that's just a hazard of
puppet administration these days.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/update-manager/+bug/941922/+subscriptions
More information about the foundations-bugs
mailing list