Feature changed by: Scott Reeves (sreeves1) Feature #306966, revision 27 - Title: [LATE] No Shutdown/Suspend During Package Update + Title: [Beta2] No Shutdown/Suspend During Package Update openSUSE-11.3: Evaluation Priority Requester: Mandatory Requested by: Andreas Jaeger (a_jaeger) Partner organization: openSUSE.org Description: During a package update, it should not be possible to shutdown or suspend the system. Such requests should be delayed until the package update is finished. You do not want to bring the system in an inconsistent state. I consider this a desktop feature, so if somebody runs halt/shutdown on the console, this might not need to work - but if the GNOME/KDE shutdown/suspend options are used, it should finish the update first. Note: Windows does not allow shutdown during an update. What happened and let me to report this as feature: A user installed a kernel update and thought the update was finished. But only one out of the three kernel packages was updated and therefore after a reboot, the system did not came up completely. Business case (Partner benefit): openSUSE.org: If this feature is not implemented, people can get broken systems - which might result in support calls. Discussion: #1: Matthias Nagorni (mnagorni) (2009-08-24 17:42:52) Seems obvious since system integrity should be a primary goal. #3: Ralph Ulrich (ulenrich) (2009-08-25 15:14:58) make critical time as short as possible: 1. firstly download all packages (not critical) 2. after finished download start installing (critical phase) Don't make download and install in parallel an option! #5: Duncan Mac-Vicar (dmacvicar) (2009-09-23 11:05:08) This feature has two parts. First, PackageKit already supports inhibiting the suspend and probably we need only to review it. First part is: * Gnome applet does a session inhibit to gnome-power-manager to prevent suspend. * Daemon inhibit code is in src/pk-inhibit.c, it talks to HAL, according to Richard this does not do anything in modern devicekit-power systems. In theory, in the gnome/HAL world this should work, and therefore I wonder why it did not work when PM evaluated it. * The above two parts needs to be reviewed by Gnome and Mobile teams. (adding engmgrs) * KDE applet needs to do an inhibit too. We can do that (if it is not there), however this is the part that we lack more resources too. I could promise the KDE part for 11.3, but not for SP1. We will try to get it for SP1 if time allows. Second part is to make it safer, for which we need to switch PackageKit libzypp backend to use the default policy of download first, and then install for all update operations. That can also be done in my team and should be trivial. #6: Duncan Mac-Vicar (dmacvicar) (2009-09-23 11:09:44) If all involved stakeholders agree with the above, this can be set to "ready". My team can commit to fix the ZYpp part (and the KDE one for SP1, or 11.3). #8: Stefan Behlert (sbehlert) (2009-09-29 13:45:42) (reply to #6) Uwe, could you comment, too? #10: Holger Macht (hmacht) (2009-10-05 16:18:48) First some questions: * What is meant by gnome-applet? The PolicyKit gnome applet? * What is the daemon inhibit code in src/pk-inhibit.c? At least the PolicyKit in SLE11 doesn't have this The suspend part at the desktop level should be quite less work, if not even working already. Do we really have a method to inhibit a shutdown/restart, which is also part of this feature? I'm also not sure if it is a good idea to prevent the user from shutting down if he explicitly asks to (with pressing the shutdown button). For doing this right, the action would need to be buffered and performed as soon as the update is finished. This sounds like quite more work. #11: Scott Reeves (sreeves1) (2009-10-08 07:39:52) The gnome-applet is the gnome-packagekit updater applet (gpk-update- icon) and the pk-inhibit.c code is part of PackageKit. The basic infrastructure is available for the gnome updater applet to support this just some of the parts still need to be hooked up and some additional support added in the PackageKit zypp backend (it currently does not issue the inhibit calls because it depends on cancel support). This can be done for the gnome updater for SP1 -- openSUSE Feature: https://features.opensuse.org/306966