On Wed, 30 Aug 2023, 13:57 Robie Basak, <2028...@bugs.launchpad.net> wrote:
> > This is an improvement to the current situation of aborting release > upgrade half way through. > > Is it? If the user ends up with a broken DKMS package on release > upgrade, then at least they'll know about it. But if we silently ignore > the failure, the release upgrade will finish pretending that it was > successful when it was not, and then what if they find the system broken > later? > This matches the behaviour we do with all the packages installed from 3rd-party PPAs. I.e. disable the PPAs, and remove packages installed from there if they are no longer installable. This implementation for dkms is equivalent to the above. Note that the current failure mode is - aborted dist-upgrade half way through the dist-install. No rollback is performed, and it is extremely difficult to recover from requiring multiple by hand calls to "apt install --fix-broken" and manual resolutions. On contrast, resolving missing dkms is trivial, as dkms status will show that they are only available for the old kernel, and user then can go and update git pull of local got repos, or 3rd party ppa's, to get the updated modules if they exist. > > Further UX / hooks might be needed in the release upgrade to complete > the story of asking the user what they want to do with regressed dkms > modules. > > I agree that this is appropriate to fix in SRUs, but can we fix the > entire story rather than iterating in the stable release? > No, not yet as it will require a lot of UX development. Not leaving people half way through the upgrade with unconfigured, unpacked and partially configured packages is at upmost priority. As that is a catastrophic state to leave users at. Also note that future UX will be done outside of the dkms package. As it would be for e.g. ubuntu-release-uograder to capture dkms status before and after release upgrade to figure out how to aks user to fix modules, if there is any discrepancy between old and new state. > I prefer not to move the goalposts but I think the above is a big enough > concern to be worth considering first. > Priority of this upload is to prevent users being left in a catastrophic state that is not recoverable. Whilst attempting to still compile dkms modules on best effort basis - just like what we do with packages installed from 3rd party PPAs. This is the goal post. > -- > You received this bug notification because you are subscribed to the bug > report. > https://bugs.launchpad.net/bugs/2028366 > > Title: > Kernel header installation fails for incompatible DKMS modules > > To manage notifications about this bug go to: > https://bugs.launchpad.net/ubuntu/+source/dkms/+bug/2028366/+subscriptions > > Launchpad-Notification-Type: bug > Launchpad-Bug: distribution=ubuntu; sourcepackage=dkms; component=main; > status=Fix Released; importance=Undecided; assignee=None; > Launchpad-Bug: distribution=ubuntu; distroseries=jammy; > sourcepackage=dkms; component=main; status=Confirmed; importance=Undecided; > assignee=None; > Launchpad-Bug: distribution=ubuntu; distroseries=lunar; > sourcepackage=dkms; component=main; status=Fix Committed; > importance=Undecided; assignee=None; > Launchpad-Bug: distribution=ubuntu; distroseries=mantic; > sourcepackage=dkms; component=main; status=Fix Released; > importance=Undecided; assignee=None; > Launchpad-Bug-Tags: patch verification-done-lunar verification-needed > Launchpad-Bug-Information-Type: Public > Launchpad-Bug-Private: no > Launchpad-Bug-Security-Vulnerability: no > Launchpad-Bug-Commenters: afredfactice janitor juergh racb tjaalton > ubuntu-sru-bot xnox > Launchpad-Bug-Reporter: Juerg Haefliger (juergh) > Launchpad-Bug-Modifier: Robie Basak (racb) > Launchpad-Message-Rationale: Subscriber > Launchpad-Message-For: xnox > > -- You received this bug notification because you are a member of Kernel Packages, which is subscribed to dkms in Ubuntu. https://bugs.launchpad.net/bugs/2028366 Title: Kernel header installation fails for incompatible DKMS modules Status in dkms package in Ubuntu: Fix Released Status in dkms source package in Jammy: Confirmed Status in dkms source package in Lunar: Fix Committed Status in dkms source package in Mantic: Fix Released Bug description: [ Impact ] If a new kernel is installed, all installed DKMS modules are built for that new kernel. There might be incompatible modules that won't compile for the new kernel which results in a kernel header package installation failure. That's bad and not really correct, the incompatible DKMS module is the problem and not the new kernel. In this case, DKMS module build failures should be ignored so that the kernel installation completes. This is especially acute during release-upgrades, as dkms modules are upgraded out of order, and major kernel version are upgraded out of order. Majority of the time there is a new dkms available, which should attempt build & load. However, many modules are often remain broken, no longer needed, or need user to fetch updated versions themselves. [ Test Plan ] * Install jammy * Add module that support v5.15 kernel, but fails to compile with any newer kernels (one can find examples of such dkms modules in the archive, or out of the archive) * Perform release upgrade with patched dkms pre-installed * Release upgrade should succeed, despite unable to compile all dkms modules [ Where problems could occur ] * This is an improvement to the current situation of aborting release upgrade half way through. It doesn't quite resolve the UX to notify the user which dkms modules did not manage to compile, or to ask user to uninstall or to update them. Further UX / hooks might be needed in the release upgrade to complete the story of asking the user what they want to do with regressed dkms modules. [ Other Info ] * See lots and lots of upgrade bugs, failing on dkms module installation To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/dkms/+bug/2028366/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp