| Summary: | Installer sometimes tries to reinstall firmware files that have been installed earlier - this is now a fatal error | ||
|---|---|---|---|
| Product: | Mageia | Reporter: | Martin Whitaker <mageia> |
| Component: | Installer | Assignee: | Thierry Vignaud <thierry.vignaud> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | major | ||
| Priority: | release_blocker | Keywords: | PATCH |
| Version: | Cauldron | ||
| Target Milestone: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| See Also: | https://bugs.mageia.org/show_bug.cgi?id=25439 | ||
| Whiteboard: | |||
| Source RPM: | drakx-installer-stage2-18.23-2.mga8.src.rpm | CVE: | |
| Status comment: | |||
| Attachments: |
Installer log showing failure
install.log from same install Proposed fix |
||
|
Description
Martin Whitaker
2020-03-02 20:47:31 CET
I don't see the link with the other bug report which looks unrelated.
I don't have your /mnt/root/drakx/install.log to confirm it but the culprit seems to be that because it's already installed, it's part of 2 transactions:
* selecting radeon-firmware-20200204-2.mga8.nonfree.noarch
* set_rejected: radeon-firmware-20200204-2.mga8.nonfree.noarch
* selecting hso-rezero-0.1-20.mga8.x86_64
* transaction valid: remove=radeon-firmware-20200204-2.mga8.nonfree.noarch update=radeon-firmware,hso-rezero
* scheduled sets of transactions:
remove=1=radeon-firmware-20200204-2.mga8.nonfree.noarch update=2=radeon-firmware,hso-rezero
* opening rpmdb (root=/mnt, write=1)
* trans: scheduling removal of radeon-firmware-20200204-2.mga8.nonfree.noarch
* trans: scheduling update of hso-rezero-0.1-20.mga8.x86_64 (id=10190, file=/tmp/image/media/core/release/hso-rezero-0.1-20.mga8.x86_64.rpm)
* trans: scheduling update of radeon-firmware-20200204-2.mga8.nonfree.noarch (id=29285, file=/tmp/image/media/nonfree/release/radeon-firmware-20200204-2.mga8.nonfree.noarch.rpm)
Could you provide install.log for such a case?
I can only imagine scenarios:
install::pkgs::_install_raw() failing to register it actually got installed:
if ($check_installed) {
_unselect_package($packages, $pkg);
But somehow it does know it's installed since it tries to remove it which must have failed b/c it's needed by some pkgs, but again we need install.log
What I know is that it happens when drakx-net code tries to install some pkgs later...Keywords:
(none) =>
NEEDINFO Created attachment 11532 [details]
install.log from same install
radeon-firmware was selected in the last batch of the main package install, but isn't listed as an installed package - although clearly it was installed.
The link to the other bug is that the reinstall used to work in mga7, but doesn't in cauldron, which has changed this bug from a minor annoyance to a release blocker :-(
The bug is in the close_helper() subroutine defined in install::pkgs::_install_raw():
# ignore first close after end of verify:
if ($is_installing && $verify_just_closed) {
undef $verify_just_closed;
return;
}
This causes the first package in each transaction to go unrecorded.
git blame gives me
commit 73aa98991a97501bc1e251689865d71ec20298a9
Author: Thierry Vignaud <thierry.vignaud@gmail.com>
Date: Wed Nov 21 03:53:02 2018 +0100
remove debug statement
wrongly added with commit 6375ef3a8cd8b1b1e057334ab680c5c701123395
(spot by Martin Whitaker)
but it looks like you also reverted a possible fix for this bug.Keywords:
NEEDINFO =>
(none) Created attachment 11549 [details]
Proposed fix
Testing what was reverted, it didn't work. This does.
Martin Whitaker
2020-03-14 18:32:27 CET
Keywords:
(none) =>
PATCH Looks good (& tested by you) Commit it… Fixed in drakx-installer-stage2-18.24 Resolution:
(none) =>
FIXED |