Bug 1244175
Summary: | distro-sync removes orphaned packages in certain cases (kernel update) | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Kamil Páral <kparal> | ||||||||||
Component: | dnf | Assignee: | Packaging Maintenance Team <packaging-team-maint> | ||||||||||
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||||||
Severity: | unspecified | Docs Contact: | |||||||||||
Priority: | unspecified | ||||||||||||
Version: | 22 | CC: | andreas.tunek, awilliam, bruno, bugzilla, decathorpe, dmach, dmaley, hcamp, johannespfrang, jsilhan, jzeleny, mluscon, packaging-team-maint, pnemade, robatino, s, tim.lauridsen, timur.kristof, travneff, vmukhame, zbyszek | ||||||||||
Target Milestone: | --- | ||||||||||||
Target Release: | --- | ||||||||||||
Hardware: | Unspecified | ||||||||||||
OS: | Unspecified | ||||||||||||
Whiteboard: | AcceptedBlocker | ||||||||||||
Fixed In Version: | libsolv-0.6.14-2.fc24 dnf-1.1.3-1.fc23 | Doc Type: | Bug Fix | ||||||||||
Doc Text: | Story Points: | --- | |||||||||||
Clone Of: | Environment: | ||||||||||||
Last Closed: | 2015-10-17 15:52:04 UTC | Type: | Bug | ||||||||||
Regression: | --- | Mount Type: | --- | ||||||||||
Documentation: | --- | CRM: | |||||||||||
Verified Versions: | Category: | --- | |||||||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||||||
Embargoed: | |||||||||||||
Bug Depends On: | |||||||||||||
Bug Blocks: | 1170821 | ||||||||||||
Attachments: |
|
Description
Kamil Páral
2015-07-17 11:48:38 UTC
Created attachment 1053045 [details]
verbose output of distro-sync
Created attachment 1053046 [details]
debugdata from dnf
$ dnf list kernel* Last metadata expiration check performed 0:55:06 ago on Fri Jul 17 13:09:21 2015. Installed Packages kernel.x86_64 4.0.5-300.fc22 @System kernel.x86_64 4.0.6-300.fc22 @System kernel.x86_64 4.0.7-300.fc22 @System kernel-core.x86_64 4.0.5-300.fc22 @System kernel-core.x86_64 4.0.6-300.fc22 @System kernel-core.x86_64 4.0.7-300.fc22 @System kernel-headers.x86_64 4.0.7-300.fc22 @System kernel-modules.x86_64 4.0.5-300.fc22 @System kernel-modules.x86_64 4.0.6-300.fc22 @System kernel-modules.x86_64 4.0.7-300.fc22 @System kernel-modules-extra.x86_64 4.0.5-300.fc22 @System kernel-modules-extra.x86_64 4.0.6-300.fc22 @System kernel-modules-extra.x86_64 4.0.7-300.fc22 @System Available Packages kernel.x86_64 4.0.8-300.fc22 updates-testing kernel-core.x86_64 4.0.8-300.fc22 updates-testing kernel-debug.x86_64 4.0.8-300.fc22 updates-testing kernel-debug-core.x86_64 4.0.8-300.fc22 updates-testing kernel-debug-devel.x86_64 4.0.8-300.fc22 updates-testing kernel-debug-modules.x86_64 4.0.8-300.fc22 updates-testing kernel-debug-modules-extra.x86_64 4.0.8-300.fc22 updates-testing kernel-devel.x86_64 4.0.8-300.fc22 updates-testing kernel-headers.x86_64 4.0.8-300.fc22 updates-testing kernel-modules.x86_64 4.0.8-300.fc22 updates-testing kernel-modules-extra.x86_64 4.0.8-300.fc22 updates-testing kernel-rpm-macros.noarch 28-1.fc22 updates kernel-tools.x86_64 4.0.8-300.fc22 updates-testing kernel-tools-libs.i686 4.0.8-300.fc22 updates-testing kernel-tools-libs.x86_64 4.0.8-300.fc22 updates-testing kernel-tools-libs-devel.i686 4.0.8-300.fc22 updates-testing kernel-tools-libs-devel.x86_64 4.0.8-300.fc22 updates-testing kernelshark.x86_64 2.2.1-5.fc22 fedora Created attachment 1053050 [details]
distro-sync with --setopt=clean_requirements_on_remove=0
The same happens with --setopt=clean_requirements_on_remove=0.
Created attachment 1053060 [details]
minimal debug data from dnf --debugsolver
I tried to update everything except kernel, and the minimal case really seems to be orphan packages + kernel update:
Last metadata expiration check performed 1:07:19 ago on Fri Jul 17 13:09:21 2015.
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
kernel x86_64 4.0.8-300.fc22 updates-testing 67 k
kernel-core x86_64 4.0.8-300.fc22 updates-testing 19 M
kernel-modules x86_64 4.0.8-300.fc22 updates-testing 18 M
kernel-modules-extra x86_64 4.0.8-300.fc22 updates-testing 2.2 M
Upgrading:
kernel-headers x86_64 4.0.8-300.fc22 updates-testing 996 k
Removing:
atom x86_64 1.0.0-0.1.fc21 @System 198 M
hamster-applet x86_64 2.32.1-3.fc17 @System 2.2 M
kernel x86_64 4.0.5-300.fc22 @System 0
kernel-core x86_64 4.0.5-300.fc22 @System 41 M
kernel-modules x86_64 4.0.5-300.fc22 @System 17 M
kernel-modules-extra x86_64 4.0.5-300.fc22 @System 2.1 M
skype i586 4.3.0.37-fc16 @System 42 M
Transaction Summary
================================================================================
Install 4 Packages
Upgrade 1 Package
Remove 7 Packages
Total download size: 40 M
Attaching new debug data, just for this minimal case.
The same case with `dnf update` is absolutely fine: $ sudo dnf update Last metadata expiration check performed 1:10:51 ago on Fri Jul 17 13:09:21 2015. Dependencies resolved. ================================================================================================================================== Package Arch Version Repository Size ================================================================================================================================== Installing: kernel x86_64 4.0.8-300.fc22 updates-testing 67 k kernel-core x86_64 4.0.8-300.fc22 updates-testing 19 M kernel-modules x86_64 4.0.8-300.fc22 updates-testing 18 M kernel-modules-extra x86_64 4.0.8-300.fc22 updates-testing 2.2 M Upgrading: kernel-headers x86_64 4.0.8-300.fc22 updates-testing 996 k Removing: kernel x86_64 4.0.5-300.fc22 @System 0 kernel-core x86_64 4.0.5-300.fc22 @System 41 M kernel-modules x86_64 4.0.5-300.fc22 @System 17 M kernel-modules-extra x86_64 4.0.5-300.fc22 @System 2.1 M Transaction Summary ================================================================================================================================== Install 4 Packages Upgrade 1 Package Remove 4 Packages Total download size: 40 M I see exactly the same problem on a different machine as well. Once there is a kernel update, it wants to remove 'atom'. This does not seem to be a rare issue. How does `dnf distro-sync -x <all orphaned pkgs>` work? Maybe we can add switch to distro-sync to preserve orphans. (In reply to Jan Silhan from comment #8) > How does `dnf distro-sync -x <all orphaned pkgs>` work? That doesn't help. Only excluding kernel helps. > Maybe we can add > switch to distro-sync to preserve orphans. I don't follow. Distro-sync always did, and still does preserve orphans. The only bug is when kernel is in the set (and probably wants to remove an older one), in this case it regressed, and behaves like remove-or-distro-sync (which is available for repository-packages command). I suggest this could deserve a higher priority in the Devel Whiteboard. It is basically a scenario resulting in user data loss. Many people using updates-testing are used to running distro-sync instead of update, because it is a must in that case. If they don't read the installation summary properly every time, or have it run automatically, this will remove important packages from their system. I want to ring the alarm bell when it's still time - this bug might be very problematic during system upgrade. Because fedup got converted into a dnf plugin, this bug now affects system upgrade as well, if it runs in distro-sync mode (which is not yet the default, but I'm trying to push to have it as the default [1]). Because there is always a kernel update during system upgrade, this is always going to affect system upgrade. And the result is that due to this bug, all packages not found in the FN+1 repository will be simply erased from the system. The user can't work around it, except for disabling distro-sync mode, which is problematic for other reasons (when upgrade path is not satisfied for critical packages, it will only half-upgrade your system and potentially break it completely). So, this means that all user third-party packages (without repos, or without functional FN+1 repos) will be missing from the upgraded system. I.e. skype gone, steam gone, dropbox gone, atom gone, etc. This seems to violate our upgrade criteria: " The upgraded system must include all packages that would be present on the system after a default installation from install media, plus any packages the user previously had (minus any obsolete content). " https://fedoraproject.org/wiki/Fedora_23_Beta_Release_Criteria#Upgrade_requirements Once dnf-plugin-system-upgrade switches to distro-sync mode, I'm going to propose this as a blocker. [1] https://github.com/rpm-software-management/dnf-plugin-system-upgrade/issues/10 Fair argument -> raising priority. With combination with bug 1259175 the system upgrades would be even funnier. FESCo decided distro-sync will be the default upgrade behavior [1] and it will get implemented as part of bug 1263677. I'm therefore proposing this as a final blocker, due to reasons stated in comment 10. [1] https://fedorahosted.org/fesco/ticket/1481 Discussed at 2015-10-05 blocker review meeting: https://meetbot-raw.fedoraproject.org/fedora-blocker-review/2015-10-05/f23-blocker-review.2015-10-05-16.00.html . Accepted as a Final blocker, on the assumption that this will affect pretty much all dnf-system-upgrade runs once it's adjusted to default to distro-sync behaviour. *** Bug 1253825 has been marked as a duplicate of this bug. *** This bug was fixed in libsolv-0.6.14-1 which was build for F23 and F24 (we will add it to updates along with DNF). Do we need the build for F22 and F21 too? (In reply to Jan Silhan from comment #15) > This bug was fixed in libsolv-0.6.14-1 which was build for F23 and F24 (we > will add it to updates along with DNF). Do we need the build for F22 and F21 > too? Does system-upgrade for F22->F23 use F22 libraries or F23 libraries during the offline upgrade? If F22 ones, we need to fix F22. Even if it used F23 libraries during the actual upgrade, system-upgrade still displays the upgrade summary (which packages are going to get upgraded and which packages are going to get skipped or removed) on a F22 system, so this summary would be incorrect and might unnecessarily scare the user (we would claim we're going to remove packages which we wouldn't afterwards). So even in this case, F22 fix would be appropriate. As for F21, I don't know what the official plans for system-upgrade are. If system-upgrade is intended to work only for F22 upwards (and people should use fedup to go F21->F22), we don't need F21 fixed. But since system-upgrade package is present in F21 updates-testing (still not pushed stable, though), I assume the opposite is the case, and in that case we need the same approach for F21 as we do for F22. dnf-1.1.3-1.fc23 dnf-plugins-core-0.1.13-1.fc23 dnf-plugins-extras-0.0.11-1.fc23 hawkey-0.6.2-1.fc23 libsolv-0.6.14-2.fc23 has been submitted as an update to Fedora 23. https://bodhi.fedoraproject.org/updates/FEDORA-2015-a011ac001a * It was fixed in libsolv-0.6.14-2. builds for f21+ has been made. dnf-1.1.3-1.fc23, dnf-plugins-core-0.1.13-1.fc23, dnf-plugins-extras-0.0.11-1.fc23, hawkey-0.6.2-1.fc23, libsolv-0.6.14-2.fc23 has been pushed to the Fedora 23 testing repository. If problems still persist, please make note of it in this bug report. If you want to test the update, you can install it with $ su -c 'dnf --enablerepo=updates-testing update hawkey dnf-plugins-core dnf-plugins-extras dnf libsolv' You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2015-a011ac001a I have tested this with F22, the problem seems to be fixed. Thanks. dnf-1.1.3-1.fc23, dnf-plugins-core-0.1.13-1.fc23, dnf-plugins-extras-0.0.11-1.fc23, hawkey-0.6.2-1.fc23, libsolv-0.6.14-2.fc23 has been pushed to the Fedora 23 stable repository. If problems still persist, please make note of it in this bug report. *** Bug 1259175 has been marked as a duplicate of this bug. *** |