Activity log for bug #1891680

Date Who What changed Old value New value Message
2020-08-14 16:17:22 Steve Langasek bug added bug
2020-08-14 16:19:06 Steve Langasek bug added subscriber Dimitri John Ledkov
2020-08-14 16:19:09 Steve Langasek grub2 (Ubuntu): importance Undecided Critical
2020-08-14 16:19:19 Steve Langasek nominated for series Ubuntu Bionic
2020-08-14 16:19:19 Steve Langasek bug task added grub2 (Ubuntu Bionic)
2020-08-14 16:19:19 Steve Langasek nominated for series Ubuntu Xenial
2020-08-14 16:19:19 Steve Langasek bug task added grub2 (Ubuntu Xenial)
2020-08-14 16:19:19 Steve Langasek nominated for series Ubuntu Groovy
2020-08-14 16:19:19 Steve Langasek bug task added grub2 (Ubuntu Groovy)
2020-08-14 16:19:19 Steve Langasek nominated for series Ubuntu Focal
2020-08-14 16:19:19 Steve Langasek bug task added grub2 (Ubuntu Focal)
2020-08-14 16:21:15 Steve Langasek grub2 (Ubuntu Focal): importance Undecided Critical
2020-08-14 16:21:16 Steve Langasek grub2 (Ubuntu Bionic): importance Undecided Critical
2020-08-14 16:21:18 Steve Langasek grub2 (Ubuntu Xenial): importance Undecided Critical
2020-08-14 16:23:11 Steve Langasek description Currently on upgrade if the debconf variable for the drive to install grub-pc to point to a non-existent drive, the grub package will nevertheless happily carry on and the postinst will exit 0 - as a result leaving the /boot/grub contents and the MBR in an inconsistent state, which due to recent ABI changes will leave the system unbootable on reboot. Three changes required in order to make grub upgrades more resilient: - exit non-zero from the postinst when the drive targets are invalid, so that we signal to the user that there is a problem BEFORE they reboot and give them the opportunity to deal with it. This is addressed by https://code.launchpad.net/~xnox/grub/+git/grub/+merge/388383 - include a check for target drive validity in the grub preinst, not just in the postinst, so that we avoid unpacking boot assets onto disk that might be incorrectly used by another package (despite grub-pc being in an unconfigured state) and still render the system unbootable; this will in general break release upgrades for affected users, but a failing postinst would do the same anyway, and failing early should leave the package manager in a more consistent state overall. - modify grub-install so that it handles the flaky part of the install - updating the BIOS disks - FIRST, and aborts if this fails; instead of the current behavior, which is that /boot/grub is updated on disk first, then it attempts to install to the BIOS disk, and if this part fails, no rollback of the contents of /boot/grub is possible. Currently on upgrade if the debconf variable for the drive to install grub-pc to point to a non-existent drive, the grub package will nevertheless happily carry on and the postinst will exit 0 - as a result leaving the /boot/grub contents and the MBR in an inconsistent state, which due to recent ABI changes will leave the system unbootable on reboot. Three changes required in order to make grub upgrades more resilient: - exit non-zero from the postinst when the drive targets are invalid, so that we signal to the user that there is a problem BEFORE they reboot and give them the opportunity to deal with it. This is addressed by https://code.launchpad.net/~xnox/grub/+git/grub/+merge/388383 - include a check for target drive validity in the grub preinst, not just in the postinst, so that we avoid unpacking boot assets onto disk that might be incorrectly used by another package (despite grub-pc being in an unconfigured state) and still render the system unbootable; this will in general break release upgrades for affected users, but a failing postinst would do the same anyway, and failing early should leave the package manager in a more consistent state overall. This is addressed by https://code.launchpad.net/~ubuntu-core-dev/grub/+git/ubuntu/+merge/388423 - modify grub-install so that it handles the flaky part of the install - updating the BIOS disks - FIRST, and aborts if this fails; instead of the current behavior, which is that /boot/grub is updated on disk first, then it attempts to install to the BIOS disk, and if this part fails, no rollback of the contents of /boot/grub is possible.
2020-08-14 21:12:00 Brian Murray bug added subscriber Brian Murray
2020-08-17 12:15:13 Akbarkhon Variskhanov bug added subscriber Akbarkhon Variskhanov
2020-08-17 15:43:32 mkurz bug added subscriber mkurz
2020-08-17 22:25:59 Launchpad Janitor grub2 (Ubuntu): status New Confirmed
2020-08-17 22:25:59 Launchpad Janitor grub2 (Ubuntu Xenial): status New Confirmed
2020-08-17 22:25:59 Launchpad Janitor grub2 (Ubuntu Bionic): status New Confirmed
2020-08-17 22:25:59 Launchpad Janitor grub2 (Ubuntu Focal): status New Confirmed
2020-08-18 05:32:35 Ikuya Awashiro bug added subscriber Ikuya Awashiro
2020-08-18 06:56:48 Nicolas Briche bug added subscriber Nicolas Briche
2020-08-18 10:06:56 Markus Rexhepi-Lindberg bug added subscriber Markus Lindberg
2020-08-18 15:59:40 nE0sIghT bug added subscriber nE0sIghT
2020-08-18 16:18:12 Dimitri John Ledkov grub2 (Ubuntu Groovy): status Confirmed In Progress
2020-08-18 16:18:15 Dimitri John Ledkov grub2 (Ubuntu Groovy): assignee Dimitri John Ledkov (xnox)
2020-08-18 17:35:39 Dimitri John Ledkov description Currently on upgrade if the debconf variable for the drive to install grub-pc to point to a non-existent drive, the grub package will nevertheless happily carry on and the postinst will exit 0 - as a result leaving the /boot/grub contents and the MBR in an inconsistent state, which due to recent ABI changes will leave the system unbootable on reboot. Three changes required in order to make grub upgrades more resilient: - exit non-zero from the postinst when the drive targets are invalid, so that we signal to the user that there is a problem BEFORE they reboot and give them the opportunity to deal with it. This is addressed by https://code.launchpad.net/~xnox/grub/+git/grub/+merge/388383 - include a check for target drive validity in the grub preinst, not just in the postinst, so that we avoid unpacking boot assets onto disk that might be incorrectly used by another package (despite grub-pc being in an unconfigured state) and still render the system unbootable; this will in general break release upgrades for affected users, but a failing postinst would do the same anyway, and failing early should leave the package manager in a more consistent state overall. This is addressed by https://code.launchpad.net/~ubuntu-core-dev/grub/+git/ubuntu/+merge/388423 - modify grub-install so that it handles the flaky part of the install - updating the BIOS disks - FIRST, and aborts if this fails; instead of the current behavior, which is that /boot/grub is updated on disk first, then it attempts to install to the BIOS disk, and if this part fails, no rollback of the contents of /boot/grub is possible. [Impact] * grub-pc currently installs new core to MBR and installs new modules to /boot in an unsafe manner, which may lead to incompatible combination of MBR and modules resulting in failure to boot. [Test Case] * Install using old point media, of an old release. I.e. 16.04.(p-1) for testing upgrades to 18.04 sru, in bios mode. * backup the contents of /boot * Configure invalid grub-pc/install_devices to a non existing device * Upgrade to the package from next series-proposed, non-interactively * Observe the package installation has failed, the grub-pc package is in a broken state. * Compare the backup of /boot with current /boot, it should have remained the same, and is different to modules in /usr/lib/grub/i386-pc * Reboot, reboot should be successful * install /etc/apparmor.d/usr.sbin.grub-install profile "/usr/sbin/grub-install" { capability, mount, ptrace, signal, unix, file, deny /dev/vda w, } and load it with sudo apparmor_parser -r usr.sbin.grub-install * Set grub-pc/install_devices to the correct existing device * Attempt non-interactive configuration of the grub-pc package * Observe the package installation has failed, the grub-pc package is in a broken state. * Compare the backup of /boot with current /boot, it should have remained the same, and is different to modules in /usr/lib/grub/i386-pc * Remove the apparmor profile /etc/apparmor.d/usr.sbin.grub-install * Reboot, reboot should be successful * Set grub-pc/install_devices to the non-existing device * Try to configure all the packages, interactively (i.e. using $ sudo dpkg --configure -a or by using $ sudo apt install -f) and ensure to select the right drive for grub installation offer * Observe that now /boot matches /usr/lib/grub/i386-pc contents, and is different from the backup taken at the start. [Regression Potential] * discussion of how regressions are most likely to manifest as a result of this change. * It is assumed that any SRU candidate patch is well-tested before upload and has a low overall risk of regression, but it's important to make the effort to think about what ''could'' happen in the event of a regression. * This both shows the SRU team that the risks have been considered, and provides guidance to testers in regression-testing the SRU. [Other Info] * Anything else you think is useful to include * Anticipate questions from users, SRU, +1 maintenance, security teams and the Technical Board * and address these questions in advance Currently on upgrade if the debconf variable for the drive to install grub-pc to point to a non-existent drive, the grub package will nevertheless happily carry on and the postinst will exit 0 - as a result leaving the /boot/grub contents and the MBR in an inconsistent state, which due to recent ABI changes will leave the system unbootable on reboot. Three changes required in order to make grub upgrades more resilient: - exit non-zero from the postinst when the drive targets are invalid, so that we signal to the user that there is a problem BEFORE they reboot and give them the opportunity to deal with it. This is addressed by https://code.launchpad.net/~xnox/grub/+git/grub/+merge/388383 - include a check for target drive validity in the grub preinst, not just in the postinst, so that we avoid unpacking boot assets onto disk that might be incorrectly used by another package (despite grub-pc being in an unconfigured state) and still render the system unbootable; this will in general break release upgrades for affected users, but a failing postinst would do the same anyway, and failing early should leave the package manager in a more consistent state overall. This is addressed by https://code.launchpad.net/~ubuntu-core-dev/grub/+git/ubuntu/+merge/388423 - modify grub-install so that it handles the flaky part of the install - updating the BIOS disks - FIRST, and aborts if this fails; instead of the current behavior, which is that /boot/grub is updated on disk first, then it attempts to install to the BIOS disk, and if this part fails, no rollback of the contents of /boot/grub is possible.
2020-08-18 17:47:21 Dimitri John Ledkov description [Impact] * grub-pc currently installs new core to MBR and installs new modules to /boot in an unsafe manner, which may lead to incompatible combination of MBR and modules resulting in failure to boot. [Test Case] * Install using old point media, of an old release. I.e. 16.04.(p-1) for testing upgrades to 18.04 sru, in bios mode. * backup the contents of /boot * Configure invalid grub-pc/install_devices to a non existing device * Upgrade to the package from next series-proposed, non-interactively * Observe the package installation has failed, the grub-pc package is in a broken state. * Compare the backup of /boot with current /boot, it should have remained the same, and is different to modules in /usr/lib/grub/i386-pc * Reboot, reboot should be successful * install /etc/apparmor.d/usr.sbin.grub-install profile "/usr/sbin/grub-install" { capability, mount, ptrace, signal, unix, file, deny /dev/vda w, } and load it with sudo apparmor_parser -r usr.sbin.grub-install * Set grub-pc/install_devices to the correct existing device * Attempt non-interactive configuration of the grub-pc package * Observe the package installation has failed, the grub-pc package is in a broken state. * Compare the backup of /boot with current /boot, it should have remained the same, and is different to modules in /usr/lib/grub/i386-pc * Remove the apparmor profile /etc/apparmor.d/usr.sbin.grub-install * Reboot, reboot should be successful * Set grub-pc/install_devices to the non-existing device * Try to configure all the packages, interactively (i.e. using $ sudo dpkg --configure -a or by using $ sudo apt install -f) and ensure to select the right drive for grub installation offer * Observe that now /boot matches /usr/lib/grub/i386-pc contents, and is different from the backup taken at the start. [Regression Potential] * discussion of how regressions are most likely to manifest as a result of this change. * It is assumed that any SRU candidate patch is well-tested before upload and has a low overall risk of regression, but it's important to make the effort to think about what ''could'' happen in the event of a regression. * This both shows the SRU team that the risks have been considered, and provides guidance to testers in regression-testing the SRU. [Other Info] * Anything else you think is useful to include * Anticipate questions from users, SRU, +1 maintenance, security teams and the Technical Board * and address these questions in advance Currently on upgrade if the debconf variable for the drive to install grub-pc to point to a non-existent drive, the grub package will nevertheless happily carry on and the postinst will exit 0 - as a result leaving the /boot/grub contents and the MBR in an inconsistent state, which due to recent ABI changes will leave the system unbootable on reboot. Three changes required in order to make grub upgrades more resilient: - exit non-zero from the postinst when the drive targets are invalid, so that we signal to the user that there is a problem BEFORE they reboot and give them the opportunity to deal with it. This is addressed by https://code.launchpad.net/~xnox/grub/+git/grub/+merge/388383 - include a check for target drive validity in the grub preinst, not just in the postinst, so that we avoid unpacking boot assets onto disk that might be incorrectly used by another package (despite grub-pc being in an unconfigured state) and still render the system unbootable; this will in general break release upgrades for affected users, but a failing postinst would do the same anyway, and failing early should leave the package manager in a more consistent state overall. This is addressed by https://code.launchpad.net/~ubuntu-core-dev/grub/+git/ubuntu/+merge/388423 - modify grub-install so that it handles the flaky part of the install - updating the BIOS disks - FIRST, and aborts if this fails; instead of the current behavior, which is that /boot/grub is updated on disk first, then it attempts to install to the BIOS disk, and if this part fails, no rollback of the contents of /boot/grub is possible. [Impact] * grub-pc currently installs new core to MBR and installs new modules to /boot in an unsafe manner, which may lead to incompatible combination of MBR and modules resulting in failure to boot. [Test Case] * Install using old point media, of an old release. I.e. 16.04.(p-1) for testing upgrades to 18.04 sru, in bios mode. * backup the contents of /boot * install /etc/apparmor.d/usr.sbin.grub-install profile "/usr/sbin/grub-install" { capability, mount, ptrace, signal, unix, file, deny /dev/vda w, } and load it with sudo apparmor_parser -r usr.sbin.grub-install * Upgrade to the package from next series-proposed, non-interactively * Observe the package installation has failed, the grub-pc package is in a broken state. * Compare the backup of /boot with current /boot, it should have remained the same, and is different to modules in /usr/lib/grub/i386-pc * Remove the apparmor profile /etc/apparmor.d/usr.sbin.grub-install * Reboot, reboot should be successful. If possible observe the version number in the grub menu, it should still be old. * Configure invalid grub-pc/install_devices to a non existing device (e.g. /dev/sdk) * Attempt non-interactive configuration of the grub-pc package * Observe the package fails, and the grub-pc package remains in a broken state. * Compare the backup of /boot with current /boot, it should have remained the same, and is different to modules in /usr/lib/grub/i386-pc * Reboot, reboot should be successful. If possible observe the version number in the grub menu, it should still be old. * Try to configure all the packages, interactively (i.e. using $ sudo dpkg --configure -a or by using $ sudo apt install -f) and ensure to select the right drive for grub installation offer * Observe that now /boot matches /usr/lib/grub/i386-pc contents, and is different from the backup taken at the start. * Reboot should be successful, and grub menu should have the new version number finally [Regression Potential] * Existing call to grub-install, is now split into two. And when any devices fail to configure, non-interactively error is reported just like it was already done with the interactive case. It means, it will fail configuration of the package, where previously it would report success. However, it is now safer and keeps the system bootable, whilst having unconfigured packages. This mostly affects non-interactive upgrades, as the interactive ones have always shown critical errors trying to correct grub-pc installation problems. The first stage of grub-install only tries to update the MBR, whilst utilizing tmpdirectory to create the core image. This is a slight increase in disk space usage, as previously core was created in-pace in /boot. Then whilst tmpdir is still populated, /boot modules and core are upgraded. These changes do not address multi-mbr systems, or cases where updating modules fails. For example, it is possible that MBR update is successful, yet writting updated modules fails, in such scenario MBR is not rolled back to previous one. Or a case where MBR updates have succeeded, but only on some devices. A choice has been made to update modules in /boot, if at least one device has a successful MBR update. No backup, or rollback of MBR is performed if module updates fail. This is tricky to do, as it is uncertain if current MBR matches the core.img & boot.img from /boot, or if some other bootsectors code was in use before. Ideally in the future, grub-install itself will be able to stage module updates, and commit/rollback them upon successful MBR update. [Other Info] * Original bug report description Currently on upgrade if the debconf variable for the drive to install grub-pc to point to a non-existent drive, the grub package will nevertheless happily carry on and the postinst will exit 0 - as a result leaving the /boot/grub contents and the MBR in an inconsistent state, which due to recent ABI changes will leave the system unbootable on reboot. Three changes required in order to make grub upgrades more resilient: - exit non-zero from the postinst when the drive targets are invalid, so that we signal to the user that there is a problem BEFORE they reboot and give them the opportunity to deal with it. This is addressed by https://code.launchpad.net/~xnox/grub/+git/grub/+merge/388383 - include a check for target drive validity in the grub preinst, not just in the postinst, so that we avoid unpacking boot assets onto disk that might be incorrectly used by another package (despite grub-pc being in an unconfigured state) and still render the system unbootable; this will in general break release upgrades for affected users, but a failing postinst would do the same anyway, and failing early should leave the package manager in a more consistent state overall. This is addressed by https://code.launchpad.net/~ubuntu-core-dev/grub/+git/ubuntu/+merge/388423 - modify grub-install so that it handles the flaky part of the install - updating the BIOS disks - FIRST, and aborts if this fails; instead of the current behavior, which is that /boot/grub is updated on disk first, then it attempts to install to the BIOS disk, and if this part fails, no rollback of the contents of /boot/grub is possible.
2020-08-18 17:49:21 Dimitri John Ledkov description [Impact] * grub-pc currently installs new core to MBR and installs new modules to /boot in an unsafe manner, which may lead to incompatible combination of MBR and modules resulting in failure to boot. [Test Case] * Install using old point media, of an old release. I.e. 16.04.(p-1) for testing upgrades to 18.04 sru, in bios mode. * backup the contents of /boot * install /etc/apparmor.d/usr.sbin.grub-install profile "/usr/sbin/grub-install" { capability, mount, ptrace, signal, unix, file, deny /dev/vda w, } and load it with sudo apparmor_parser -r usr.sbin.grub-install * Upgrade to the package from next series-proposed, non-interactively * Observe the package installation has failed, the grub-pc package is in a broken state. * Compare the backup of /boot with current /boot, it should have remained the same, and is different to modules in /usr/lib/grub/i386-pc * Remove the apparmor profile /etc/apparmor.d/usr.sbin.grub-install * Reboot, reboot should be successful. If possible observe the version number in the grub menu, it should still be old. * Configure invalid grub-pc/install_devices to a non existing device (e.g. /dev/sdk) * Attempt non-interactive configuration of the grub-pc package * Observe the package fails, and the grub-pc package remains in a broken state. * Compare the backup of /boot with current /boot, it should have remained the same, and is different to modules in /usr/lib/grub/i386-pc * Reboot, reboot should be successful. If possible observe the version number in the grub menu, it should still be old. * Try to configure all the packages, interactively (i.e. using $ sudo dpkg --configure -a or by using $ sudo apt install -f) and ensure to select the right drive for grub installation offer * Observe that now /boot matches /usr/lib/grub/i386-pc contents, and is different from the backup taken at the start. * Reboot should be successful, and grub menu should have the new version number finally [Regression Potential] * Existing call to grub-install, is now split into two. And when any devices fail to configure, non-interactively error is reported just like it was already done with the interactive case. It means, it will fail configuration of the package, where previously it would report success. However, it is now safer and keeps the system bootable, whilst having unconfigured packages. This mostly affects non-interactive upgrades, as the interactive ones have always shown critical errors trying to correct grub-pc installation problems. The first stage of grub-install only tries to update the MBR, whilst utilizing tmpdirectory to create the core image. This is a slight increase in disk space usage, as previously core was created in-pace in /boot. Then whilst tmpdir is still populated, /boot modules and core are upgraded. These changes do not address multi-mbr systems, or cases where updating modules fails. For example, it is possible that MBR update is successful, yet writting updated modules fails, in such scenario MBR is not rolled back to previous one. Or a case where MBR updates have succeeded, but only on some devices. A choice has been made to update modules in /boot, if at least one device has a successful MBR update. No backup, or rollback of MBR is performed if module updates fail. This is tricky to do, as it is uncertain if current MBR matches the core.img & boot.img from /boot, or if some other bootsectors code was in use before. Ideally in the future, grub-install itself will be able to stage module updates, and commit/rollback them upon successful MBR update. [Other Info] * Original bug report description Currently on upgrade if the debconf variable for the drive to install grub-pc to point to a non-existent drive, the grub package will nevertheless happily carry on and the postinst will exit 0 - as a result leaving the /boot/grub contents and the MBR in an inconsistent state, which due to recent ABI changes will leave the system unbootable on reboot. Three changes required in order to make grub upgrades more resilient: - exit non-zero from the postinst when the drive targets are invalid, so that we signal to the user that there is a problem BEFORE they reboot and give them the opportunity to deal with it. This is addressed by https://code.launchpad.net/~xnox/grub/+git/grub/+merge/388383 - include a check for target drive validity in the grub preinst, not just in the postinst, so that we avoid unpacking boot assets onto disk that might be incorrectly used by another package (despite grub-pc being in an unconfigured state) and still render the system unbootable; this will in general break release upgrades for affected users, but a failing postinst would do the same anyway, and failing early should leave the package manager in a more consistent state overall. This is addressed by https://code.launchpad.net/~ubuntu-core-dev/grub/+git/ubuntu/+merge/388423 - modify grub-install so that it handles the flaky part of the install - updating the BIOS disks - FIRST, and aborts if this fails; instead of the current behavior, which is that /boot/grub is updated on disk first, then it attempts to install to the BIOS disk, and if this part fails, no rollback of the contents of /boot/grub is possible. [Impact]  * grub-pc currently installs new core to MBR and installs new modules to /boot in an unsafe manner, which may lead to incompatible combination of MBR and modules resulting in failure to boot. [Test Case]  * Install using old point media, of an old release. I.e. 16.04.(p-1) for testing upgrades to 18.04 sru, in bios mode.  * backup the contents of /boot  * install /etc/apparmor.d/usr.sbin.grub-install profile "/usr/sbin/grub-install" {   capability,   mount,   ptrace,   signal,   unix,   file,   deny /dev/* w, }    and load it with   sudo apparmor_parser -r usr.sbin.grub-install  * Upgrade to the package from next series-proposed, non-interactively  * Observe the package installation has failed, the grub-pc package is in a broken state.  * Compare the backup of /boot with current /boot, it should have remained the same, and is different to modules in /usr/lib/grub/i386-pc  * Remove the apparmor profile /etc/apparmor.d/usr.sbin.grub-install  * Reboot, reboot should be successful. If possible observe the version number in the grub menu, it should still be old.  * Configure invalid grub-pc/install_devices to a non existing device (e.g. /dev/sdk)  * Attempt non-interactive configuration of the grub-pc package  * Observe the package fails, and the grub-pc package remains in a broken state.  * Compare the backup of /boot with current /boot, it should have remained the same, and is different to modules in /usr/lib/grub/i386-pc  * Reboot, reboot should be successful. If possible observe the version number in the grub menu, it should still be old.  * Try to configure all the packages, interactively (i.e. using $ sudo dpkg --configure -a or by using $ sudo apt install -f) and ensure to select the right drive for grub installation offer  * Observe that now /boot matches /usr/lib/grub/i386-pc contents, and is different from the backup taken at the start.  * Reboot should be successful, and grub menu should have the new version number finally [Regression Potential]  * Existing call to grub-install, is now split into two. And when any    devices fail to configure, non-interactively error is reported just    like it was already done with the interactive case.    It means, it will fail configuration of the package, where    previously it would report success. However, it is now safer and    keeps the system bootable, whilst having unconfigured    packages. This mostly affects non-interactive upgrades, as the    interactive ones have always shown critical errors trying to    correct grub-pc installation problems.    The first stage of grub-install only tries to update the MBR,    whilst utilizing tmpdirectory to create the core image. This is a    slight increase in disk space usage, as previously core was created    in-pace in /boot. Then whilst tmpdir is still populated, /boot    modules and core are upgraded.    These changes do not address multi-mbr systems, or cases where    updating modules fails. For example, it is possible that MBR update    is successful, yet writting updated modules fails, in such scenario    MBR is not rolled back to previous one. Or a case where MBR updates    have succeeded, but only on some devices. A choice has been made to    update modules in /boot, if at least one device has a successful    MBR update. No backup, or rollback of MBR is performed if module    updates fail. This is tricky to do, as it is uncertain if current    MBR matches the core.img & boot.img from /boot, or if some other    bootsectors code was in use before. Ideally in the future,    grub-install itself will be able to stage module updates, and    commit/rollback them upon successful MBR update. [Other Info]  * Original bug report description Currently on upgrade if the debconf variable for the drive to install grub-pc to point to a non-existent drive, the grub package will nevertheless happily carry on and the postinst will exit 0 - as a result leaving the /boot/grub contents and the MBR in an inconsistent state, which due to recent ABI changes will leave the system unbootable on reboot. Three changes required in order to make grub upgrades more resilient: - exit non-zero from the postinst when the drive targets are invalid, so that we signal to the user that there is a problem BEFORE they reboot and give them the opportunity to deal with it. This is addressed by https://code.launchpad.net/~xnox/grub/+git/grub/+merge/388383 - include a check for target drive validity in the grub preinst, not just in the postinst, so that we avoid unpacking boot assets onto disk that might be incorrectly used by another package (despite grub-pc being in an unconfigured state) and still render the system unbootable; this will in general break release upgrades for affected users, but a failing postinst would do the same anyway, and failing early should leave the package manager in a more consistent state overall. This is addressed by https://code.launchpad.net/~ubuntu-core-dev/grub/+git/ubuntu/+merge/388423 - modify grub-install so that it handles the flaky part of the install - updating the BIOS disks - FIRST, and aborts if this fails; instead of the current behavior, which is that /boot/grub is updated on disk first, then it attempts to install to the BIOS disk, and if this part fails, no rollback of the contents of /boot/grub is possible.
2020-08-18 17:52:24 Dimitri John Ledkov description [Impact]  * grub-pc currently installs new core to MBR and installs new modules to /boot in an unsafe manner, which may lead to incompatible combination of MBR and modules resulting in failure to boot. [Test Case]  * Install using old point media, of an old release. I.e. 16.04.(p-1) for testing upgrades to 18.04 sru, in bios mode.  * backup the contents of /boot  * install /etc/apparmor.d/usr.sbin.grub-install profile "/usr/sbin/grub-install" {   capability,   mount,   ptrace,   signal,   unix,   file,   deny /dev/* w, }    and load it with   sudo apparmor_parser -r usr.sbin.grub-install  * Upgrade to the package from next series-proposed, non-interactively  * Observe the package installation has failed, the grub-pc package is in a broken state.  * Compare the backup of /boot with current /boot, it should have remained the same, and is different to modules in /usr/lib/grub/i386-pc  * Remove the apparmor profile /etc/apparmor.d/usr.sbin.grub-install  * Reboot, reboot should be successful. If possible observe the version number in the grub menu, it should still be old.  * Configure invalid grub-pc/install_devices to a non existing device (e.g. /dev/sdk)  * Attempt non-interactive configuration of the grub-pc package  * Observe the package fails, and the grub-pc package remains in a broken state.  * Compare the backup of /boot with current /boot, it should have remained the same, and is different to modules in /usr/lib/grub/i386-pc  * Reboot, reboot should be successful. If possible observe the version number in the grub menu, it should still be old.  * Try to configure all the packages, interactively (i.e. using $ sudo dpkg --configure -a or by using $ sudo apt install -f) and ensure to select the right drive for grub installation offer  * Observe that now /boot matches /usr/lib/grub/i386-pc contents, and is different from the backup taken at the start.  * Reboot should be successful, and grub menu should have the new version number finally [Regression Potential]  * Existing call to grub-install, is now split into two. And when any    devices fail to configure, non-interactively error is reported just    like it was already done with the interactive case.    It means, it will fail configuration of the package, where    previously it would report success. However, it is now safer and    keeps the system bootable, whilst having unconfigured    packages. This mostly affects non-interactive upgrades, as the    interactive ones have always shown critical errors trying to    correct grub-pc installation problems.    The first stage of grub-install only tries to update the MBR,    whilst utilizing tmpdirectory to create the core image. This is a    slight increase in disk space usage, as previously core was created    in-pace in /boot. Then whilst tmpdir is still populated, /boot    modules and core are upgraded.    These changes do not address multi-mbr systems, or cases where    updating modules fails. For example, it is possible that MBR update    is successful, yet writting updated modules fails, in such scenario    MBR is not rolled back to previous one. Or a case where MBR updates    have succeeded, but only on some devices. A choice has been made to    update modules in /boot, if at least one device has a successful    MBR update. No backup, or rollback of MBR is performed if module    updates fail. This is tricky to do, as it is uncertain if current    MBR matches the core.img & boot.img from /boot, or if some other    bootsectors code was in use before. Ideally in the future,    grub-install itself will be able to stage module updates, and    commit/rollback them upon successful MBR update. [Other Info]  * Original bug report description Currently on upgrade if the debconf variable for the drive to install grub-pc to point to a non-existent drive, the grub package will nevertheless happily carry on and the postinst will exit 0 - as a result leaving the /boot/grub contents and the MBR in an inconsistent state, which due to recent ABI changes will leave the system unbootable on reboot. Three changes required in order to make grub upgrades more resilient: - exit non-zero from the postinst when the drive targets are invalid, so that we signal to the user that there is a problem BEFORE they reboot and give them the opportunity to deal with it. This is addressed by https://code.launchpad.net/~xnox/grub/+git/grub/+merge/388383 - include a check for target drive validity in the grub preinst, not just in the postinst, so that we avoid unpacking boot assets onto disk that might be incorrectly used by another package (despite grub-pc being in an unconfigured state) and still render the system unbootable; this will in general break release upgrades for affected users, but a failing postinst would do the same anyway, and failing early should leave the package manager in a more consistent state overall. This is addressed by https://code.launchpad.net/~ubuntu-core-dev/grub/+git/ubuntu/+merge/388423 - modify grub-install so that it handles the flaky part of the install - updating the BIOS disks - FIRST, and aborts if this fails; instead of the current behavior, which is that /boot/grub is updated on disk first, then it attempts to install to the BIOS disk, and if this part fails, no rollback of the contents of /boot/grub is possible. [Impact]  * grub-pc currently installs new core to MBR and installs new modules to /boot in an unsafe manner, which may lead to incompatible combination of MBR and modules resulting in failure to boot. [Test Case]  * Install using old point media, of an old release. I.e. 16.04.(p-1) for testing upgrades to 18.04 sru, in bios mode.  * backup the contents of /boot  * install /etc/apparmor.d/usr.sbin.grub-install profile "/usr/sbin/grub-install" {   capability,   mount,   ptrace,   signal,   unix,   file,   deny /dev/* w, }    and load it with   sudo apparmor_parser -r usr.sbin.grub-install  * Upgrade to the package from next series-proposed, non-interactively  * Observe the package installation has failed, the grub-pc package is in a broken state.  * Compare the backup of /boot with current /boot, it should have remained the same, and is different to modules in /usr/lib/grub/i386-pc  * Remove the apparmor profile /etc/apparmor.d/usr.sbin.grub-install  * Reboot, reboot should be successful. If possible observe the version number in the grub menu, it should still be old.  * Configure invalid grub-pc/install_devices to a non existing device (e.g. /dev/sdk)  * Attempt non-interactive configuration of the grub-pc package  * Observe the package fails, and the grub-pc package remains in a broken state.  * Compare the backup of /boot with current /boot, it should have remained the same, and is different to modules in /usr/lib/grub/i386-pc  * Reboot, reboot should be successful. If possible observe the version number in the grub menu, it should still be old.  * Try to configure all the packages, interactively (i.e. using $ sudo dpkg --configure -a or by using $ sudo apt install -f) and ensure to select the right drive for grub installation offer  * Observe that now /boot matches /usr/lib/grub/i386-pc contents, and is different from the backup taken at the start.  * Reboot should be successful, and grub menu should have the new version number finally [Regression Potential]  * Existing call to grub-install, is now split into two. And when any    devices fail to configure, non-interactively error is reported just    like it was already done with the interactive case.    It means, it will fail configuration of the package, where    previously it would report success. However, it is now safer and    keeps the system bootable, whilst having unconfigured    packages. This mostly affects non-interactive upgrades, as the    interactive ones have always shown critical errors trying to    correct grub-pc installation problems.    The first stage of grub-install only tries to update the MBR,    whilst utilizing tmpdirectory to create the core image. This is a    slight increase in disk space usage, as previously core was created    in-pace in /boot. Then whilst tmpdir is still populated, /boot    modules and core are upgraded.    These changes do not address multi-mbr systems, or cases where    updating modules fails. For example, it is possible that MBR update    is successful, yet writting updated modules fails (out of disk space), in such scenario MBR is not rolled back to previous one. Or a case where MBR updates have succeeded, but only on some devices. A choice has been made to update modules in /boot, if at least one device has a successful MBR update. No backup, or rollback of MBR is performed if module updates fail. This is tricky to do, as it is uncertain if current MBR matches the core.img & boot.img from /boot, or if some other bootsectors code was in use before. Ideally in the future, grub-install itself will be able to stage module updates, and commit/rollback them upon successful MBR update. [Other Info]  * Original bug report description Currently on upgrade if the debconf variable for the drive to install grub-pc to point to a non-existent drive, the grub package will nevertheless happily carry on and the postinst will exit 0 - as a result leaving the /boot/grub contents and the MBR in an inconsistent state, which due to recent ABI changes will leave the system unbootable on reboot. Three changes required in order to make grub upgrades more resilient: - exit non-zero from the postinst when the drive targets are invalid, so that we signal to the user that there is a problem BEFORE they reboot and give them the opportunity to deal with it. This is addressed by https://code.launchpad.net/~xnox/grub/+git/grub/+merge/388383 - include a check for target drive validity in the grub preinst, not just in the postinst, so that we avoid unpacking boot assets onto disk that might be incorrectly used by another package (despite grub-pc being in an unconfigured state) and still render the system unbootable; this will in general break release upgrades for affected users, but a failing postinst would do the same anyway, and failing early should leave the package manager in a more consistent state overall. This is addressed by https://code.launchpad.net/~ubuntu-core-dev/grub/+git/ubuntu/+merge/388423 - modify grub-install so that it handles the flaky part of the install - updating the BIOS disks - FIRST, and aborts if this fails; instead of the current behavior, which is that /boot/grub is updated on disk first, then it attempts to install to the BIOS disk, and if this part fails, no rollback of the contents of /boot/grub is possible.
2020-08-18 17:58:16 Dimitri John Ledkov description [Impact]  * grub-pc currently installs new core to MBR and installs new modules to /boot in an unsafe manner, which may lead to incompatible combination of MBR and modules resulting in failure to boot. [Test Case]  * Install using old point media, of an old release. I.e. 16.04.(p-1) for testing upgrades to 18.04 sru, in bios mode.  * backup the contents of /boot  * install /etc/apparmor.d/usr.sbin.grub-install profile "/usr/sbin/grub-install" {   capability,   mount,   ptrace,   signal,   unix,   file,   deny /dev/* w, }    and load it with   sudo apparmor_parser -r usr.sbin.grub-install  * Upgrade to the package from next series-proposed, non-interactively  * Observe the package installation has failed, the grub-pc package is in a broken state.  * Compare the backup of /boot with current /boot, it should have remained the same, and is different to modules in /usr/lib/grub/i386-pc  * Remove the apparmor profile /etc/apparmor.d/usr.sbin.grub-install  * Reboot, reboot should be successful. If possible observe the version number in the grub menu, it should still be old.  * Configure invalid grub-pc/install_devices to a non existing device (e.g. /dev/sdk)  * Attempt non-interactive configuration of the grub-pc package  * Observe the package fails, and the grub-pc package remains in a broken state.  * Compare the backup of /boot with current /boot, it should have remained the same, and is different to modules in /usr/lib/grub/i386-pc  * Reboot, reboot should be successful. If possible observe the version number in the grub menu, it should still be old.  * Try to configure all the packages, interactively (i.e. using $ sudo dpkg --configure -a or by using $ sudo apt install -f) and ensure to select the right drive for grub installation offer  * Observe that now /boot matches /usr/lib/grub/i386-pc contents, and is different from the backup taken at the start.  * Reboot should be successful, and grub menu should have the new version number finally [Regression Potential]  * Existing call to grub-install, is now split into two. And when any    devices fail to configure, non-interactively error is reported just    like it was already done with the interactive case.    It means, it will fail configuration of the package, where    previously it would report success. However, it is now safer and    keeps the system bootable, whilst having unconfigured    packages. This mostly affects non-interactive upgrades, as the    interactive ones have always shown critical errors trying to    correct grub-pc installation problems.    The first stage of grub-install only tries to update the MBR,    whilst utilizing tmpdirectory to create the core image. This is a    slight increase in disk space usage, as previously core was created    in-pace in /boot. Then whilst tmpdir is still populated, /boot    modules and core are upgraded.    These changes do not address multi-mbr systems, or cases where    updating modules fails. For example, it is possible that MBR update    is successful, yet writting updated modules fails (out of disk space), in such scenario MBR is not rolled back to previous one. Or a case where MBR updates have succeeded, but only on some devices. A choice has been made to update modules in /boot, if at least one device has a successful MBR update. No backup, or rollback of MBR is performed if module updates fail. This is tricky to do, as it is uncertain if current MBR matches the core.img & boot.img from /boot, or if some other bootsectors code was in use before. Ideally in the future, grub-install itself will be able to stage module updates, and commit/rollback them upon successful MBR update. [Other Info]  * Original bug report description Currently on upgrade if the debconf variable for the drive to install grub-pc to point to a non-existent drive, the grub package will nevertheless happily carry on and the postinst will exit 0 - as a result leaving the /boot/grub contents and the MBR in an inconsistent state, which due to recent ABI changes will leave the system unbootable on reboot. Three changes required in order to make grub upgrades more resilient: - exit non-zero from the postinst when the drive targets are invalid, so that we signal to the user that there is a problem BEFORE they reboot and give them the opportunity to deal with it. This is addressed by https://code.launchpad.net/~xnox/grub/+git/grub/+merge/388383 - include a check for target drive validity in the grub preinst, not just in the postinst, so that we avoid unpacking boot assets onto disk that might be incorrectly used by another package (despite grub-pc being in an unconfigured state) and still render the system unbootable; this will in general break release upgrades for affected users, but a failing postinst would do the same anyway, and failing early should leave the package manager in a more consistent state overall. This is addressed by https://code.launchpad.net/~ubuntu-core-dev/grub/+git/ubuntu/+merge/388423 - modify grub-install so that it handles the flaky part of the install - updating the BIOS disks - FIRST, and aborts if this fails; instead of the current behavior, which is that /boot/grub is updated on disk first, then it attempts to install to the BIOS disk, and if this part fails, no rollback of the contents of /boot/grub is possible. [Impact]  * grub-pc currently installs new core to MBR and installs new modules to /boot in an unsafe manner, which may lead to incompatible combination of MBR and modules resulting in failure to boot. [Test Case]  * Install using old point media, of an old release. I.e. 16.04.(p-1) for testing upgrades to 18.04 sru, in bios mode.  * backup the contents of /boot * First we will test a case where target boot device exists, yet writes to it are denied, thus one can update modules, but cannot update the MBR.  * install /etc/apparmor.d/usr.sbin.grub-install profile "/usr/sbin/grub-install" {   capability,   mount,   ptrace,   signal,   unix,   file,   deny /dev/* w, }    and load it with   sudo apparmor_parser -r usr.sbin.grub-install  * Upgrade to the package from next series-proposed, non-interactively  * Observe the package installation has failed, the grub-pc package is in a broken state.  * Compare the backup of /boot with current /boot, it should have remained the same, and is different to modules in /usr/lib/grub/i386-pc  * Remove the apparmor profile /etc/apparmor.d/usr.sbin.grub-install  * Reboot, reboot should be successful. If possible observe the version number in the grub menu, it should still be old. * Now we will test a case where a non-existing device ended up being configured in debconf. For example, due to old buggy cloud-init having been used during first boot, or because the VM got migrated from one hardware configuration to another (i.e. offline switch from SCSI sda, to VIRTIO vda).  * Configure invalid grub-pc/install_devices to a non existing device (e.g. /dev/sdk)  * Attempt non-interactive configuration of the grub-pc package  * Observe the package fails, and the grub-pc package remains in a broken state.  * Compare the backup of /boot with current /boot, it should have remained the same, and is different to modules in /usr/lib/grub/i386-pc  * Reboot, reboot should be successful. If possible observe the version number in the grub menu, it should still be old.  * Try to configure all the packages, interactively (i.e. using $ sudo dpkg --configure -a or by using $ sudo apt install -f) and ensure to select the right drive for grub installation offer  * Observe that now /boot matches /usr/lib/grub/i386-pc contents, and is different from the backup taken at the start.  * Reboot should be successful, and grub menu should have the new version number finally [Regression Potential]  * Existing call to grub-install, is now split into two. And when any    devices fail to configure, non-interactively error is reported just    like it was already done with the interactive case.    It means, it will fail configuration of the package, where    previously it would report success. However, it is now safer and    keeps the system bootable, whilst having unconfigured    packages. This mostly affects non-interactive upgrades, as the    interactive ones have always shown critical errors trying to    correct grub-pc installation problems.    The first stage of grub-install only tries to update the MBR,    whilst utilizing tmpdirectory to create the core image. This is a    slight increase in disk space usage, as previously core was created    in-pace in /boot. Then whilst tmpdir is still populated, /boot    modules and core are upgraded.    These changes do not address multi-mbr systems, or cases where    updating modules fails. For example, it is possible that MBR update    is successful, yet writting updated modules fails (out of disk space),    in such scenario MBR is not rolled back to previous one. Or a case    where MBR updates have succeeded, but only on some devices.    A choice has been made to update modules in /boot, if at least one    device has a successful MBR update. No backup, or rollback of MBR is    performed if module updates fail. This is tricky to do, as it is    uncertain if current MBR matches the core.img & boot.img from /boot, or    if some other bootsectors code was in use before. Ideally in the    future, grub-install itself will be able to stage module updates, and    commit/rollback them upon successful MBR update. [Other Info]  * Original bug report description Currently on upgrade if the debconf variable for the drive to install grub-pc to point to a non-existent drive, the grub package will nevertheless happily carry on and the postinst will exit 0 - as a result leaving the /boot/grub contents and the MBR in an inconsistent state, which due to recent ABI changes will leave the system unbootable on reboot. Three changes required in order to make grub upgrades more resilient: - exit non-zero from the postinst when the drive targets are invalid, so that we signal to the user that there is a problem BEFORE they reboot and give them the opportunity to deal with it. This is addressed by https://code.launchpad.net/~xnox/grub/+git/grub/+merge/388383 - include a check for target drive validity in the grub preinst, not just in the postinst, so that we avoid unpacking boot assets onto disk that might be incorrectly used by another package (despite grub-pc being in an unconfigured state) and still render the system unbootable; this will in general break release upgrades for affected users, but a failing postinst would do the same anyway, and failing early should leave the package manager in a more consistent state overall. This is addressed by https://code.launchpad.net/~ubuntu-core-dev/grub/+git/ubuntu/+merge/388423 - modify grub-install so that it handles the flaky part of the install - updating the BIOS disks - FIRST, and aborts if this fails; instead of the current behavior, which is that /boot/grub is updated on disk first, then it attempts to install to the BIOS disk, and if this part fails, no rollback of the contents of /boot/grub is possible.
2020-08-18 21:42:36 Andrei Shevchuk bug added subscriber Andrei Shevchuk
2020-08-19 09:05:55 thinkpad bug added subscriber thinkpad
2020-08-19 16:17:25 Oleg "Nightwing" Lomakin bug added subscriber Oleg "Nightwing" Lomakin
2020-08-22 17:02:37 P. Oscar Boykin bug added subscriber P. Oscar Boykin
2020-08-23 01:04:15 Toby Petty bug added subscriber Toby Petty
2020-08-24 09:42:20 Stefan Luik bug added subscriber Stefan Luik
2020-08-25 14:25:42 Alberto Mardegan bug added subscriber Alberto Mardegan
2020-08-25 18:39:22 Fizzfadlt bug added subscriber Fizzfadlt
2020-08-25 23:02:48 Mike bug added subscriber Mike
2020-08-26 10:14:29 san03 bug added subscriber Philipp
2020-08-26 21:47:43 Victor Gonzalez bug added subscriber Victor Gonzalez
2020-08-27 20:44:55 Windmark bug added subscriber Windmark
2020-08-27 23:50:35 Jim Kleckner bug added subscriber Jim Kleckner
2020-08-28 14:24:00 Launchpad Janitor merge proposal linked https://code.launchpad.net/~xnox/grub/+git/grub/+merge/389968
2020-08-28 15:04:39 Tero Gusto bug added subscriber Tero Gusto
2020-08-30 22:57:45 Patric bug added subscriber Patric
2020-08-30 23:39:38 Chaos bug added subscriber Chaos
2020-09-01 09:30:08 Christian Limberg bug added subscriber Christian Limberg
2020-09-02 01:28:51 Kai Kasurinen bug added subscriber Kai Kasurinen
2020-09-02 12:55:35 Francis Ginther tags id-5f36bab45785997ba0092e8a
2020-09-02 16:10:04 Steve Langasek grub2 (Ubuntu Groovy): status In Progress Fix Committed
2020-09-02 19:20:54 Launchpad Janitor grub2 (Ubuntu Groovy): status Fix Committed Fix Released
2020-09-03 07:43:56 Jonas O bug added subscriber Jonas O
2020-09-04 15:10:25 seyfullah ari bug added subscriber seyfullah ari
2020-09-06 06:41:07 Kyle Miller bug added subscriber Kyle Miller
2020-09-06 07:47:05 Will bug added subscriber Will
2020-09-06 13:58:41 MohammadHossein Bagheri bug added subscriber MohammadHossein Bagheri
2020-09-07 05:39:05 ctorrens bug added subscriber Iced
2020-09-07 06:21:03 Ulf bug added subscriber Ulf
2020-09-07 07:19:54 Roemer Claasen bug added subscriber Roemer Claasen
2020-09-07 19:59:41 Nikolai Kristiansen bug added subscriber Nikolai Kristiansen
2020-09-08 10:41:16 Dimitri John Ledkov grub2 (Ubuntu Focal): status Confirmed In Progress
2020-09-09 01:26:03 Peter Martini bug added subscriber Peter Martini
2020-09-09 10:18:17 Plinio de Paula bug added subscriber Plinio de Paula
2020-09-09 11:15:15 Maximilian Schleiss bug added subscriber Maximilian Schleiss
2020-09-09 16:47:55 costinel bug added subscriber costinel
2020-09-09 18:41:12 Romwriter bug added subscriber Romwriter Launchpad
2020-09-09 20:39:20 Steve Langasek grub2 (Ubuntu Focal): status In Progress Fix Committed
2020-09-09 20:39:25 Steve Langasek bug added subscriber Ubuntu Stable Release Updates Team
2020-09-09 20:39:27 Steve Langasek bug added subscriber SRU Verification
2020-09-09 20:39:47 Steve Langasek tags id-5f36bab45785997ba0092e8a id-5f36bab45785997ba0092e8a verification-needed verification-needed-focal
2020-09-09 21:20:32 Emanuel Evans bug added subscriber Emanuel Evans
2020-09-10 00:52:26 Dave Butcher bug added subscriber Dave Butcher
2020-09-10 15:36:47 Andrew Cloke bug added subscriber Andrew Cloke
2020-09-11 11:43:17 Glenn bug added subscriber Glenn
2020-09-11 14:14:10 Andrew Minter bug added subscriber Andrew Minter
2020-09-12 01:52:33 Ben Kietzman bug added subscriber Ben Kietzman
2020-09-13 12:27:00 Alexander Yesipov bug added subscriber Alexander Yesipov
2020-09-14 11:19:26 Leopoldo bug added subscriber Leopoldo
2020-09-15 00:48:51 xfool bug added subscriber xfool
2020-09-15 10:54:58 Dimitri John Ledkov tags id-5f36bab45785997ba0092e8a verification-needed verification-needed-focal id-5f36bab45785997ba0092e8a verification-done verification-done-focal
2020-09-15 19:42:47 Louis Fall grub2 (Ubuntu Focal): status Fix Committed Fix Released
2020-09-15 20:12:56 Brian Murray grub2 (Ubuntu Focal): status Fix Released Fix Committed
2020-09-16 00:03:36 Launchpad Janitor grub2 (Ubuntu Focal): status Fix Committed Fix Released
2020-09-16 00:03:43 Steve Langasek removed subscriber Ubuntu Stable Release Updates Team
2020-09-16 04:22:28 Erick Brunzell bug added subscriber Erick Brunzell
2020-09-16 21:59:11 Rob bug added subscriber Rob
2020-09-17 21:53:04 dann frazier bug added subscriber dann frazier
2020-09-18 10:41:57 Eduard Hasenleithner bug added subscriber Eduard Hasenleithner
2020-09-20 06:57:43 matt604 bug added subscriber matt604
2020-09-20 08:52:06 Lance bug added subscriber Lance
2020-09-24 08:47:52 Luca Passini bug added subscriber Luca Passini
2020-09-24 11:04:54 Seb Bonnard bug added subscriber Seb Bonnard
2020-09-24 12:42:17 Adam Nofsinger bug added subscriber Adam Nofsinger
2020-09-24 23:29:57 Erik bug added subscriber Erik
2020-09-28 10:59:49 guillaume ramelet bug added subscriber guillaume ramelet
2020-09-29 18:43:11 Glenn removed subscriber Glenn
2020-09-30 09:54:04 BDisp bug added subscriber BDisp
2020-09-30 12:02:54 T.J. Cravey removed subscriber T.J. Cravey
2020-09-30 16:58:40 Emanuel Evans removed subscriber Emanuel Evans
2020-10-05 01:01:48 guillaume ramelet removed subscriber guillaume ramelet
2020-10-05 11:42:17 Rich Vertigan removed subscriber Rich Vertigan
2020-10-08 12:53:00 radiovirusgenerator bug added subscriber radiovirusgenerator
2020-10-14 15:48:30 Matthieu Clemenceau tags id-5f36bab45785997ba0092e8a verification-done verification-done-focal fr-114 id-5f36bab45785997ba0092e8a verification-done verification-done-focal
2020-10-27 20:10:00 Brian Murray grub2 (Ubuntu Bionic): status Confirmed Fix Committed
2020-10-27 20:10:06 Brian Murray bug added subscriber Ubuntu Stable Release Updates Team
2020-10-27 20:10:40 Brian Murray tags fr-114 id-5f36bab45785997ba0092e8a verification-done verification-done-focal fr-114 id-5f36bab45785997ba0092e8a verification-done-focal verification-needed verification-needed-bionic
2020-10-28 02:15:34 Fizzfadlt removed subscriber Fizzfadlt
2020-11-10 10:50:42 Dimitri John Ledkov tags fr-114 id-5f36bab45785997ba0092e8a verification-done-focal verification-needed verification-needed-bionic fr-114 id-5f36bab45785997ba0092e8a verification-done verification-done-bionic verification-done-focal
2020-11-12 12:27:57 Launchpad Janitor grub2 (Ubuntu Bionic): status Fix Committed Fix Released
2020-11-17 13:05:56 Leopoldo removed subscriber Leopoldo