Mailinglist Archive: opensuse-features (266 mails)

< Previous Next >
[openFATE 309205] Remove old kernel package only after the new one successfully booted
Feature changed by: Karl Eichwalder (keichwa)
Feature #309205, revision 15
Title: Remove old kernel package only after the new one successfully
booted

openSUSE-11.2: Rejected by Andreas Jaeger (a_jaeger)
reject date: 2010-03-24 09:37:10
reject reason: 11.2 is long out, let's file for 11.3.
Priority
Requester: Important

openSUSE-11.3: Rejected by Federico Lucifredi (flucifredi)
reject date: 2010-05-28 17:33:45
reject reason: Too late.
Priority
Requester: Important

openSUSE-11.4: Rejected by Michal Marek (michal-m)
reject date: 2011-05-04 17:05:24
reject reason: Not done.
Priority
Requester: Important

openSUSE 12.1: Done
Priority
Requester: Important

Requested by: Luis Freitas (jazzmelody)
Requested by: Martin Barry (supine)
Partner organization: openSUSE.org

Description:
When the kernel package is upgraded the old one is immediately removed
leaving the currently running kernel with no modules. This breaks
anything that requires modules until the user has an opportunity to
reboot.
The removal of the old package should be delayed till the system is
rebooted into the new kernel.
Reproducible: Always
Steps to Reproduce: 1. Kernel package is upgraded 2. Try to run tcpdump
Actual Results: 3. Get error about "interface not supported" and
"unknown address family" 4. Reboot into new kernel 5. Try again to run
tcpdump with identical arguements 6. tcpdump works as expected
Expected Results: 3. tcpdump works as expected even before system is
booted into new kernel

Relations:
- related SLE feature (feature/id: 312018)
- Kernel upgrade removes modules of running kernel subtly breaking the
system until rebooted into new kernel (novell/bugzilla/id: 590496)
https://bugzilla.novell.com/show_bug.cgi?id=590496

Discussion:
#1: unknown user (2010-03-23 14:38:59)
This is another symptom of needing the ability to clean up an old
kernel after a successful boot.

#2: (michal-m) (2010-03-23 16:02:38) (reply to #1)
Let alone defining "successful boot" would be tough, but let's say if
the user has logged in, there is at least some success (but e.g. the
network might still not be working though). This would be the kernel
packaging part. Then there would need to be some way to tell the
package manager "now it's time to remove packages x,y and z, ask the
user for confirmation either via the update applet, or as soon as the
package manager is started".
IMO it would be a nice feature, but I have no idea how difficult the
zypp/yast/updater applet part would be.

#6: Luis Freitas (jazzmelody) (2011-04-16 02:36:19) (reply to #1)
I use OpenSUSE in a production environment for server purposes and this
is a very important (and secure) feature that is needed
professionally.

#7: Matthias Bach (themarix) (2011-05-03 17:51:58) (reply to #6)
Same for me. Currently every kernel update is a risk as it might break
my "read dm-crypt key from usb key"-solution with now way back. Having
the old kernel would always leave the option to boot back to a working
system and try again.

#9: Michal Marek (michal-m) (2011-05-04 17:09:36) (reply to #7)
Unrelated to this fate entry, could you try pushing your "read dm-crypt
key from usb key"-solution to Factory mkinitrd? Thanks.

#5: Martin Seidler (pistazienfresser) (2010-11-01 10:34:11)
See also:
# for Ubuntu: last-good-boot
https://wiki.ubuntu.com/KernelTeam/removing-old-kernels
(https://wiki.ubuntu.com/KernelTeam/removing-old-kernels)
# other openFATE Treads:
## #310665: Keep the current kernel when doing a kernel update through
yast https://features.opensuse.org/310665
## #306971: keep the previous kernel after update process
https://features.opensuse.org/306971 (306971)

#8: Michal Marek (michal-m) (2011-05-04 17:04:59)
I'm going to work on a script that cleans up old kernels on boot. I'll
post details later.

#10: Michal Marek (michal-m) (2011-06-21 14:15:02) (reply to #8)
This is on the way to Factory now:
http://lists.opensuse.org/opensuse-commit/2011-06/msg00669.html . There
will be a new variable in zypp.conf, multiversion.kernels, that can be
set to a list of kernels to keep after a kernel update. For this to
work, the multiversion variable must be set as well. You also need an
updated mkinitrd package that provides the script that does the kernel
removal. I'll blog about this feature in more detail when I get the
time for that.



+ Release Notes:


--
openSUSE Feature:
https://features.opensuse.org/309205

< Previous Next >
This Thread