[Bug 1861292] Re: flash-kernel failure during kernel upgrade
Paul Larson
paul.larson at canonical.com
Fri Jan 31 21:30:50 UTC 2020
** Tags removed: verification-needed verification-needed-bionic
** Tags added: verification-done verification-done-bionic
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to flash-kernel in Ubuntu.
https://bugs.launchpad.net/bugs/1861292
Title:
flash-kernel failure during kernel upgrade
Status in flash-kernel package in Ubuntu:
Fix Released
Status in flash-kernel source package in Bionic:
Fix Committed
Bug description:
[Impact]
In version 3.98ubuntu10 of flash-kernel (f-k henceforth), when both
f-k and the kernel are upgraded in the same cycle, depending on the
ordering of dpkg trigger execution, f-k may find the content of /boot
"inconsistent" causing it to fail and exit with code 2.
This causes build failures of, for instance, our server-live images.
[Test Case]
* Flash an old image (with an out of date kernel) to an SD card
* Boot the card on a pi with no network access (to ensure unattended-upgrades doesn't do anything until wanted)
* Login and change password
* Disable u-u
* Connect ethernet
* sudo apt update/upgrade
* Observe failure with 3.98ubuntu10 (and check existence of /tmp/flash-kernel-no-kernel-error.log)
* Reflash same old image
* Boot the card without network access
* Disable u-u
* Connect ethernet
* sudo add-apt-repository ppa:waveform/flash-kernel
* sudo apt update/upgrade
* Upgrade should proceed without issue
[Regression Potential]
As with the previous flash-kernel uploads, it is possible that a
breakage in the changed code can lead to issues with upgrading kernels
(due to f-k being executed via a trigger at the end) or with pi
devices in the field not upgrading correctly. We will test all the
changes extensively though.
[Original Description]
In version 3.98ubuntu10 of flash-kernel (f-k henceforth), when both
f-k and the kernel are upgraded in the same cycle, depending on the
ordering of dpkg trigger execution, f-k may find the content of /boot
"inconsistent" causing it to fail and exit with code 2:
ubuntu at ubuntu:~$ sudo apt full-upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
libdns-export1104 libdns1104 libisc-export1100 libisc1100
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
libctf-nobfd0 libctf0 libdns-export1107 libdns1107 libisc-export1104 libisc1104 linux-headers-5.3.0-1017-raspi2 linux-image-5.3.0-1017-raspi2 linux-modules-5.3.0-1017-raspi2 linux-raspi2-headers-5.3.0-1017
python3-distutils python3-importlib-metadata python3-lib2to3 python3-more-itertools python3-pyrsistent python3-setuptools python3-zipp
The following packages will be upgraded:
bind9-host binutils binutils-arm-linux-gnueabihf binutils-common dmeventd dmsetup dnsutils e2fsprogs file flash-kernel gcc-9-base geoip-database glib-networking glib-networking-common
glib-networking-services info install-info isc-dhcp-client isc-dhcp-common landscape-common libappstream4 libassuan0 libbind9-161 libbinutils libcom-err2 libdevmapper-event1.02.1 libdevmapper1.02.1 libelf1
libext2fs2 libfribidi0 libgcc1 libgeoip1 libirs161 libisccc161 libisccfg163 liblvm2cmd2.03 liblwres161 liblzo2-2 libmagic-mgc libmagic1 libnss-systemd libpam-systemd libpci3 libpcsclite1 libss2 libssh-4
libssl1.1 libstdc++6 libsystemd0 libudev1 libxml2 linux-headers-raspi2 linux-image-raspi2 linux-raspi2 login logsave lvm2 mdadm openssh-client openssh-server openssh-sftp-server openssl passwd pci.ids
pciutils python3-blinker python3-cryptography python3-json-pointer python3-jsonschema python3-nacl python3-yaml systemd systemd-sysv u-boot-rpi u-boot-tools ubuntu-minimal ubuntu-server ubuntu-standard udev
79 upgraded, 17 newly installed, 0 to remove and 0 not upgraded.
Need to get 71.3 MB of archives.
After this operation, 227 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Get:1 http://ports.ubuntu.com/ubuntu-ports focal/main armhf login armhf 1:4.8-1ubuntu1 [217 kB]
Get:2 http://ppa.launchpad.net/waveform/pi4/ubuntu focal/main armhf u-boot-rpi armhf 2019.07+dfsg-1ubuntu8 [276 kB]
Get:3 http://ports.ubuntu.com/ubuntu-ports focal/main armhf libnss-systemd armhf 244.1-0ubuntu2 [114 kB]
Get:4 http://ports.ubuntu.com/ubuntu-ports focal/main armhf udev armhf 244.1-0ubuntu2 [1319 kB]
Get:5 http://ppa.launchpad.net/waveform/pi4/ubuntu focal/main armhf u-boot-tools armhf 2019.07+dfsg-1ubuntu8 [164 kB]
Get:6 http://ports.ubuntu.com/ubuntu-ports focal/main armhf libudev1 armhf 244.1-0ubuntu2 [69.1 kB]
Get:7 http://ports.ubuntu.com/ubuntu-ports focal/main armhf systemd-sysv armhf 244.1-0ubuntu2 [9364 B]
Get:8 http://ports.ubuntu.com/ubuntu-ports focal/main armhf libpam-systemd armhf 244.1-0ubuntu2 [118 kB]
Get:9 http://ports.ubuntu.com/ubuntu-ports focal/main armhf systemd armhf 244.1-0ubuntu2 [3533 kB]
...
Setting up python3-more-itertools (4.2.0-1build1) ...
Setting up pci.ids (0.0~2020.01.25-1) ...
Setting up u-boot-rpi:armhf (2019.07+dfsg-1ubuntu8) ...
Setting up linux-raspi2-headers-5.3.0-1017 (5.3.0-1017.19) ...
Setting up libmagic-mgc (1:5.38-4) ...
Setting up libssl1.1:armhf (1.1.1d-2ubuntu3) ...
Setting up binutils-common:armhf (2.33.90.20200122-1ubuntu2) ...
Setting up libmagic1:armhf (1:5.38-4) ...
Setting up libctf-nobfd0:armhf (2.33.90.20200122-1ubuntu2) ...
Setting up python3-yaml (5.3-1ubuntu1) ...
Setting up liblzo2-2:armhf (2.10-2) ...
Setting up systemd (244.1-0ubuntu2) ...
Setting up libcom-err2:armhf (1.45.3-4ubuntu3) ...
Setting up file (1:5.38-4) ...
Setting up libassuan0:armhf (2.5.3-7ubuntu2) ...
Setting up python3-zipp (1.0.0-1) ...
Setting up landscape-common (19.12-0ubuntu3) ...
Setting up libisc-export1104:armhf (1:9.11.14+dfsg-3ubuntu1) ...
Setting up linux-modules-5.3.0-1017-raspi2 (5.3.0-1017.19) ...
Setting up python3-cryptography (2.6.1-4ubuntu1) ...
Setting up liblwres161:armhf (1:9.11.14+dfsg-3ubuntu1) ...
Setting up libfribidi0:armhf (1.0.8-2) ...
Setting up linux-headers-5.3.0-1017-raspi2 (5.3.0-1017.19) ...
Setting up udev (244.1-0ubuntu2) ...
update-initramfs: deferring update (trigger activated)
Setting up libss2:armhf (1.45.3-4ubuntu3) ...
Setting up libpcsclite1:armhf (1.8.26-2ubuntu2) ...
Setting up logsave (1.45.3-4ubuntu3) ...
Setting up libssh-4:armhf (0.9.3-2ubuntu1) ...
Setting up libpci3:armhf (1:3.6.4-1) ...
Setting up libdevmapper1.02.1:armhf (2:1.02.155-2ubuntu8) ...
Setting up python3-pyrsistent:armhf (0.15.5-1) ...
Setting up dmsetup (2:1.02.155-2ubuntu8) ...
update-initramfs: deferring update (trigger activated)
Setting up python3-json-pointer (2.0-0ubuntu1) ...
Setting up libgeoip1:armhf (1.6.12-6) ...
Setting up isc-dhcp-common (4.4.1-2ubuntu6) ...
Setting up libdns-export1107 (1:9.11.14+dfsg-3ubuntu1) ... [60/476]
Setting up glib-networking-common (2.63.3-0build1) ...
Setting up libbinutils:armhf (2.33.90.20200122-1ubuntu2) ...
Setting up geoip-database (20191224-2) ...
Setting up openssl (1.1.1d-2ubuntu3) ...
Setting up python3-lib2to3 (3.8.0-1) ...
Setting up libelf1:armhf (0.176-1.1build1) ...
Setting up libxml2:armhf (2.9.4+dfsg1-8ubuntu3) ...
Setting up info (6.7.0.dfsg.2-5) ...
Setting up python3-nacl (1.3.0-4) ...
Setting up mdadm (4.1-5ubuntu1) ...
update-initramfs: deferring update (trigger activated)
mdcheck_continue.timer is a disabled or a static unit not running, not starting it.
Setting up python3-blinker (1.4+dfsg1-0.3ubuntu1) ...
Setting up libctf0:armhf (2.33.90.20200122-1ubuntu2) ...
Setting up python3-distutils (3.8.0-1) ...
Setting up glib-networking-services (2.63.3-0build1) ...
Setting up systemd-sysv (244.1-0ubuntu2) ...
Setting up libisc1104:armhf (1:9.11.14+dfsg-3ubuntu1) ...
Setting up flash-kernel (3.98ubuntu10) ...
Using DTB: bcm2710-rpi-3-b.dtb
Installing /lib/firmware/5.3.0-1017-raspi2/device-tree/bcm2710-rpi-3-b.dtb into /boot/dtbs/5.3.0-1017-raspi2/./bcm2710-rpi-3-b.dtb
Installing new bcm2710-rpi-3-b.dtb.
flash-kernel: deferring update (trigger activated)
Setting up python3-importlib-metadata (1.4.0-1ubuntu1) ...
Setting up libdevmapper-event1.02.1:armhf (2:1.02.155-2ubuntu8) ...
Setting up python3-setuptools (44.0.0-1) ...
Setting up openssh-client (1:8.1p1-5) ...
Setting up isc-dhcp-client (4.4.1-2ubuntu6) ...
Setting up libnss-systemd:armhf (244.1-0ubuntu2) ...
Setting up e2fsprogs (1.45.3-4ubuntu3) ...
update-initramfs: deferring update (trigger activated)
e2scrub_all.service is a disabled or a static unit not running, not starting it.
Setting up libappstream4:armhf (0.12.10-1) ...
Setting up linux-image-5.3.0-1017-raspi2 (5.3.0-1017.19) ...
I: /boot/vmlinuz is now a symlink to vmlinuz-5.3.0-1017-raspi2
I: /boot/initrd.img is now a symlink to initrd.img-5.3.0-1017-raspi2
Setting up linux-headers-raspi2 (5.3.0.1017.14) ...
Setting up python3-jsonschema (3.2.0-0ubuntu2) ...
Setting up pciutils (1:3.6.4-1) ...
Setting up linux-image-raspi2 (5.3.0.1017.14) ...
Setting up libpam-systemd:armhf (244.1-0ubuntu2) ...
Setting up libisccc161:armhf (1:9.11.14+dfsg-3ubuntu1) ...
Setting up libdns1107:armhf (1:9.11.14+dfsg-3ubuntu1) ...
Setting up libisccfg163:armhf (1:9.11.14+dfsg-3ubuntu1) ...
Setting up glib-networking:armhf (2.63.3-0build1) ...
Setting up binutils-arm-linux-gnueabihf (2.33.90.20200122-1ubuntu2) ...
Setting up openssh-sftp-server (1:8.1p1-5) ...
Setting up openssh-server (1:8.1p1-5) ...
rescue-ssh.target is a disabled or a static unit, not starting it.
Setting up ubuntu-minimal (1.443) ... [10/476]
Setting up libbind9-161:armhf (1:9.11.14+dfsg-3ubuntu1) ...
Setting up binutils (2.33.90.20200122-1ubuntu2) ...
Setting up libirs161:armhf (1:9.11.14+dfsg-3ubuntu1) ...
Setting up linux-raspi2 (5.3.0.1017.14) ...
Setting up u-boot-tools (2019.07+dfsg-1ubuntu8) ...
Setting up bind9-host (1:9.11.14+dfsg-3ubuntu1) ...
Setting up dnsutils (1:9.11.14+dfsg-3ubuntu1) ...
Setting up ubuntu-standard (1.443) ...
Setting up liblvm2cmd2.03:armhf (2.03.02-2ubuntu8) ...
Setting up dmeventd (2:1.02.155-2ubuntu8) ...
dm-event.service is a disabled or a static unit not running, not starting it.
Setting up lvm2 (2.03.02-2ubuntu8) ...
update-initramfs: deferring update (trigger activated)
Setting up ubuntu-server (1.443) ...
Processing triggers for install-info (6.7.0.dfsg.2-5) ...
Processing triggers for mime-support (3.64ubuntu1) ...
Processing triggers for libglib2.0-0:armhf (2.63.3-1) ...
Processing triggers for libc-bin (2.30-0ubuntu3) ...
Processing triggers for ufw (0.36-1ubuntu6) ...
Processing triggers for man-db (2.9.0-2) ...
Processing triggers for dbus (1.12.16-2ubuntu2) ...
Processing triggers for initramfs-tools (0.133ubuntu12) ...
update-initramfs: Generating /boot/initrd.img-5.3.0-1015-raspi2
Using DTB: bcm2710-rpi-3-b.dtb
Installing /lib/firmware/5.3.0-1015-raspi2/device-tree/bcm2710-rpi-3-b.dtb into /boot/dtbs/5.3.0-1015-raspi2/./bcm2710-rpi-3-b.dtb
Installing new bcm2710-rpi-3-b.dtb.
Ignoring old or unknown version 5.3.0-1015-raspi2 (latest is 5.3.0-1017-raspi2)
Processing triggers for flash-kernel (3.98ubuntu10) ...
Using DTB: bcm2710-rpi-3-b.dtb
Installing /lib/firmware/5.3.0-1017-raspi2/device-tree/bcm2710-rpi-3-b.dtb into /boot/dtbs/5.3.0-1017-raspi2/./bcm2710-rpi-3-b.dtb
Taking backup of bcm2710-rpi-3-b.dtb.
Installing new bcm2710-rpi-3-b.dtb.
dpkg: error processing package flash-kernel (--configure):
installed flash-kernel package post-installation script subprocess returned error exit status 2
Processing triggers for linux-image-5.3.0-1017-raspi2 (5.3.0-1017.19) ...
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-5.3.0-1017-raspi2
Using DTB: bcm2710-rpi-3-b.dtb
Installing /lib/firmware/5.3.0-1017-raspi2/device-tree/bcm2710-rpi-3-b.dtb into /boot/dtbs/5.3.0-1017-raspi2/./bcm2710-rpi-3-b.dtb
Taking backup of bcm2710-rpi-3-b.dtb.
Installing new bcm2710-rpi-3-b.dtb.
Installing /lib/firmware/5.3.0-1017-raspi2/device-tree/bcm2710-rpi-3-b.dtb into /boot/dtbs/5.3.0-1017-raspi2/./bcm2710-rpi-3-b.dtb
Taking backup of bcm2710-rpi-3-b.dtb.
Installing new bcm2710-rpi-3-b.dtb.
flash-kernel: deferring update (trigger activated)
/etc/kernel/postinst.d/zz-flash-kernel:
Using DTB: bcm2710-rpi-3-b.dtb
Installing /lib/firmware/5.3.0-1017-raspi2/device-tree/bcm2710-rpi-3-b.dtb into /boot/dtbs/5.3.0-1017-raspi2/./bcm2710-rpi-3-b.dtb
Taking backup of bcm2710-rpi-3-b.dtb.
Installing new bcm2710-rpi-3-b.dtb.
Installing /lib/firmware/5.3.0-1017-raspi2/device-tree/bcm2710-rpi-3-b.dtb into /boot/dtbs/5.3.0-1017-raspi2/./bcm2710-rpi-3-b.dtb
Taking backup of bcm2710-rpi-3-b.dtb.
Installing new bcm2710-rpi-3-b.dtb.
flash-kernel: deferring update (trigger activated)
Errors were encountered while processing:
flash-kernel
E: Sub-process /usr/bin/dpkg returned an error code (1)
This is caused by code under line 832 of "functions"
(https://git.launchpad.net/ubuntu/+source/flash-
kernel/tree/functions?id=b2fbda45824cfdd2950349979b1cfda52fa86d9d#n832)
checking for an apparent inconsistency in /boot: when one or both of
the kernel image or initrd for the expected version don't exist. In
the content of /tmp/flash-kernel-no-kernel-error.log was the following
output:
+ ls -l /boot/vmlinuz-5.3.0-1017-raspi2
-rw------- 1 root root 7430656 Jan 15 21:09 /boot/vmlinuz-5.3.0-1017-raspi2
+ ls -l /boot/initrd.img-5.3.0-1017-raspi2*
ls: cannot access '/boot/initrd.img-5.3.0-1017-raspi2*': No such file or directory
A subsequent run of "apt install -f" fixed things because, by that
point, the kernel's own trigger had executed, ensuring that update-
initramfs had been run. In the case that f-k is run "prematurely" and
finds itself in this situation (/boot/kernel-$[ver} exists, but
/boot/initrd-${ver}) doesn't), it should probably bail out silently
under the assumption that whatever is responsible for it will rectify
the situation and trigger f-k again (as happens in the kernel postinst
hooks).
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/flash-kernel/+bug/1861292/+subscriptions
More information about the foundations-bugs
mailing list