[Bug 1930573] Re: usrmerge error after upgradingfrom 20.10 to 21.04
Lukas Märdian
1930573 at bugs.launchpad.net
Wed Oct 27 14:25:27 UTC 2021
Thank you Brian for accepting it into impish-proposed!
I've tested usrmerge 25ubuntu1.1 from impish-proposed, all good:
$ lxc launch ubuntu:bionic usrmerge
$ lxc exec usrmerge bash
# do-release-upgrade
[...]
# reboot
# ls -l /
total 88
drwxr-xr-x 2 root root 12288 Oct 27 13:39 bin
drwxr-xr-x 2 root root 4096 Oct 21 15:54 boot
drwxr-xr-x 8 root root 500 Oct 27 13:39 dev
drwxr-xr-x 94 root root 12288 Oct 27 13:39 etc
drwxr-xr-x 3 root root 4096 Oct 27 13:30 home
drwxr-xr-x 21 root root 4096 Oct 27 13:35 lib
drwxr-xr-x 2 root root 4096 Oct 27 13:31 lib64
drwxr-xr-x 2 root root 4096 Oct 21 15:48 media
drwxr-xr-x 2 root root 4096 Oct 21 15:48 mnt
drwxr-xr-x 2 root root 4096 Oct 21 15:48 opt
dr-xr-xr-x 512 nobody nogroup 0 Oct 27 13:39 proc
drwx------ 4 root root 4096 Oct 27 13:39 root
drwxr-xr-x 20 root root 640 Oct 27 13:39 run
drwxr-xr-x 2 root root 12288 Oct 27 13:39 sbin
drwxr-xr-x 6 root root 4096 Oct 27 13:35 snap
drwxr-xr-x 2 root root 4096 Oct 21 15:48 srv
dr-xr-xr-x 13 nobody nogroup 0 Oct 27 13:39 sys
drwxrwxrwt 10 root root 4096 Oct 27 13:39 tmp
drwxr-xr-x 12 root root 4096 Oct 27 13:33 usr
drwxr-xr-x 13 root root 4096 Oct 21 15:52 var
# mkdir -p /usr/lib/udev && cp /lib/udev/hwdb.bin /usr/lib/udev/
# sed -i 's/Prompt=lts/Prompt=normal/' /etc/update-manager/release-upgrades
# do-release-upgrade
[...]
# /usr/lib/usrmerge/convert-usrmerge
ionice: ioprio_set failed: Operation not permitted
chrt: failed to set pid 44628's policy: Operation not permitted
FATAL ERROR:
Both /lib/udev/hwdb.bin and /usr/lib/udev/hwdb.bin exist.
You can try correcting the errors reported and running again
/usr/lib/usrmerge/convert-usrmerge until it will complete without errors.
Do not install or update other Debian packages until the program
has been run successfully.
# echo $?
1
# wget https://launchpad.net/ubuntu/+archive/primary/+files/usrmerge_25ubuntu1.1_all.deb
# dpkg -i usrmerge_25ubuntu1.1_all.deb
(Reading database ... 35984 files and directories currently installed.)
Preparing to unpack usrmerge_25ubuntu1.1_all.deb ...
Unpacking usrmerge (25ubuntu1.1) over (24ubuntu3) ...
Setting up usrmerge (25ubuntu1.1) ...
Smartmatch is experimental at /usr/lib/usrmerge/convert-usrmerge line 172.
ionice: ioprio_set failed: Operation not permitted
chrt: failed to set pid 44665's policy: Operation not permitted
The system has been successfully converted.
# /usr/lib/usrmerge/convert-usrmerge
Smartmatch is experimental at /usr/lib/usrmerge/convert-usrmerge line 172.
ionice: ioprio_set failed: Operation not permitted
chrt: failed to set pid 44812's policy: Operation not permitted
The system has been successfully converted.
# echo $?
0
# ls -la /
total 64
drwxr-xr-x 18 root root 4096 Oct 27 13:53 .
drwxr-xr-x 18 root root 4096 Oct 27 13:53 ..
lrwxrwxrwx 1 root root 7 Oct 27 13:53 bin -> usr/bin
drwxr-xr-x 2 root root 4096 Oct 21 15:54 boot
drwxr-xr-x 8 root root 500 Oct 27 13:39 dev
drwxr-xr-x 101 root root 12288 Oct 27 13:53 etc
drwxr-xr-x 3 root root 4096 Oct 27 13:30 home
lrwxrwxrwx 1 root root 7 Oct 27 13:53 lib -> usr/lib
lrwxrwxrwx 1 root root 9 Oct 27 13:53 lib32 -> usr/lib32
lrwxrwxrwx 1 root root 9 Oct 27 13:53 lib64 -> usr/lib64
lrwxrwxrwx 1 root root 10 Oct 27 13:53 libx32 -> usr/libx32
drwxr-xr-x 2 root root 4096 Oct 21 15:48 media
drwxr-xr-x 2 root root 4096 Oct 21 15:48 mnt
drwxr-xr-x 2 root root 4096 Oct 21 15:48 opt
dr-xr-xr-x 493 nobody nogroup 0 Oct 27 13:39 proc
drwx------ 4 root root 4096 Oct 27 13:53 root
drwxr-xr-x 24 root root 800 Oct 27 13:50 run
lrwxrwxrwx 1 root root 8 Oct 27 13:53 sbin -> usr/sbin
drwxr-xr-x 6 root root 4096 Oct 27 13:35 snap
drwxr-xr-x 2 root root 4096 Oct 21 15:48 srv
dr-xr-xr-x 13 nobody nogroup 0 Oct 27 13:39 sys
drwxrwxrwt 11 root root 4096 Oct 27 13:51 tmp
drwxr-xr-x 15 root root 4096 Oct 27 13:47 usr
drwxr-xr-x 13 root root 4096 Oct 21 15:52 var
** Tags removed: verification-needed-impish
** Tags added: verification-done-impish
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to usrmerge in Ubuntu.
https://bugs.launchpad.net/bugs/1930573
Title:
usrmerge error after upgradingfrom 20.10 to 21.04
Status in usrmerge package in Ubuntu:
Fix Committed
Status in usrmerge source package in Hirsute:
Fix Committed
Status in usrmerge source package in Impish:
Fix Committed
Status in usrmerge source package in Jammy:
Fix Committed
Status in usrmerge package in Debian:
New
Bug description:
[Impact]
* Starting with Ubuntu Hirsute, the 'usrmerge' package is pulled into
the default installation, doing the merging of /{bin,sbin,lib}/ and
/usr/{bin,sbin,lib} on upgrade. If there are left-over generated files
it will fail with an error like this:
Setting up usrmerge (24ubuntu3) ...
FATAL ERROR:
Both /lib/udev/hwdb.bin and /usr/lib/udev/hwdb.bin exist.
The upgrade has completed but there were errors during the upgrade
process.
* We want a fix in Hirsute+ that clears the old location (e.g.
/lib/udev/hwdb.bin) if the file has already been re-generated at the
new location (e.g. /usr/lib/udev/hwdb.bin).
[Test Plan]
Prepare a recent, but non-usrmerge'd system (e.g. launch Bionic and upgrade to Focal then Hirsute):
$ lxc launch ubuntu:bionic usrmerge
# do-release-upgrade
[...]
# reboot
# ls -la / # to make sure that /lib is not (yet) a link to /usr/lib
Simulate duplicated generated files & upgrade:
# mkdir -p /usr/lib/udev && cp /lib/udev/hwdb.bin /usr/lib/udev/
# vim /etc/update-manager/release-upgrades # change to "Prompt=normal"
# do-release-upgrade
[...]
=> Upgrade fails, press "C" to cancel bug report
=> "The upgrade has completed but there were errors during the upgrade process."
Verify that the script still fails:
# /usr/lib/usrmerge/convert-usrmerge
FATAL ERROR:
Both /lib/udev/hwdb.bin and /usr/lib/udev/hwdb.bin exist.
Install relevant usrmerge package:
# wget https://launchpad.net/ubuntu/+archive/primary/+files/usrmerge_VER_all.deb
# dpkg -i usrmerge_VER_all.deb
=> The system has been successfully converted.
# /usr/lib/usrmerge/convert-usrmerge
=> The system has been successfully converted.
# echo $?
0
[Where problems could occur]
* The upload modifies the convert-usrmerge script, adding special handling for certain, generated files.
* If something goes wrong, it could delete the wrong state of udev's hwdb which would be re-generated by systemd-hwdb-update.service
* It could also interrupt the upgrade processes on installation of the usrmerge package, asking the user for manual action (e.g. solving some file conflict and re-running /usr/lib/usrmerge/convert-usrmerge)
[Other Info]
* The patch was sent to Debian: https://bugs.debian.org/997866
=== Original Description ===
I got the following error after upgrading from 20.10 to 21.04:
Setting up usrmerge (24ubuntu3) ...
FATAL ERROR:
Both /lib/udev/hwdb.bin and /usr/lib/udev/hwdb.bin exist.
You can try correcting the errors reported and running again
/usr/lib/usrmerge/convert-usrmerge until it will complete without errors.
Do not install or update other Debian packages until the program
has been run successfully.
dpkg: error processing package usrmerge (--configure):
installed usrmerge package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
usrmerge
Running "sudo dpkg --configure -a", "sudo apt -f install" or "sudo
/usr/lib/usrmerge/convert-usrmerge" give exactly the same error.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/usrmerge/+bug/1930573/+subscriptions
More information about the foundations-bugs
mailing list