coreos / rpm-ostree

⚛📦 Hybrid image/package system with atomic upgrades and package layering
https://coreos.github.io/rpm-ostree
Other
839 stars 192 forks source link

Can't reset override with remote repo gone and some dependency issue #4807

Open djasa opened 5 months ago

djasa commented 5 months ago

Describe the bug

Because of wish to provide data for SSSD/sssd#7027, I was keeping a copr override for a PR there which recently expired. This repo now 404s. One package in its installed version depends on a library from that now-gone repo (I suppose it's stuck at the older version, with new version having to be pulled together with the override reset to resolve the dependencies).

Reproduction steps

  1. have some overrides from external repo
  2. have a pkg depending on overriding library
  3. try to reset the override

Expected behavior

There is some discoverable way how to get the system out of this state

Actual behavior

Packages get essentially stuck at current versions due to the external repo unavailability, no obvious transaction works (see below).

System details

rpm-ostree status --booted 
State: idle
AutomaticUpdates: check; rpm-ostreed-automatic.timer: inactive
BootedDeployment:
● fedora:fedora/39/x86_64/silverblue
                  Version: 39.20240109.0 (2024-01-09T00:39:19Z)
               BaseCommit: b05d82040ec4f6def0ef2ea58374cd7d0f98ee4a70b55da7997a83e8d799eb22
             GPGSignature: Valid signature by E8F23996F23218640CB44CBE75CF5AC418B8E74C
           LocalOverrides: wireless-regdb 2023.05.03-2.fc39 -> 2022.06.06-2.fc37
          RemoteOverrides: repo=copr:copr.fedorainfracloud.org:group_sssd:pr7034
                           ├─ libipa_hbac 2.9.3-1.fc39 -> 9.pr7034-03508.fc39
                           ├─ libsss_certmap 2.9.3-1.fc39 -> 9.pr7034-03508.fc39
                           ├─ libsss_idmap 2.9.3-1.fc39 -> 9.pr7034-03508.fc39
                           ├─ libsss_nss_idmap 2.9.3-1.fc39 -> 9.pr7034-03508.fc39
                           ├─ libsss_sudo 2.9.3-1.fc39 -> 9.pr7034-03508.fc39
                           ├─ sssd 2.9.3-1.fc39 -> 9.pr7034-03508.fc39
                           ├─ sssd-ad 2.9.3-1.fc39 -> 9.pr7034-03508.fc39
                           ├─ sssd-client 2.9.3-1.fc39 -> 9.pr7034-03508.fc39
                           ├─ sssd-common 2.9.3-1.fc39 -> 9.pr7034-03508.fc39
                           ├─ sssd-common-pac 2.9.3-1.fc39 -> 9.pr7034-03508.fc39
                           ├─ sssd-ipa 2.9.3-1.fc39 -> 9.pr7034-03508.fc39
                           ├─ sssd-kcm 2.9.3-1.fc39 -> 9.pr7034-03508.fc39
                           ├─ sssd-krb5 2.9.3-1.fc39 -> 9.pr7034-03508.fc39
                           ├─ sssd-krb5-common 2.9.3-1.fc39 -> 9.pr7034-03508.fc39
                           ├─ sssd-ldap 2.9.3-1.fc39 -> 9.pr7034-03508.fc39
                           ├─ sssd-nfs-idmap 2.9.3-1.fc39 -> 9.pr7034-03508.fc39
                           └─ sssd-proxy 2.9.3-1.fc39 -> 9.pr7034-03508.fc39
          LayeredPackages: ansible git gnome-boxes gnome-tweak-tool guestfs-tools htop ipa-client krb5-workstation libguestfs libguestfs-xfs libvirt-client libvirt-daemon openssl perl-Git powertop qemu-system-x86 tlp vim-enhanced
                           virt-viewer

AvailableUpdate:
        Version: 39.20240123.0 (2024-01-23T00:49:42Z)
         Commit: 6aa7b656eb301c48752b89ef59c43d8b3304766db52f42e282c5cbdedfbf45ca
   GPGSignature: Valid signature by E8F23996F23218640CB44CBE75CF5AC418B8E74C
  SecAdvisories: 7 moderate, 1 important
           Diff: 133 upgraded, 5 added

Additional information

Trying override reset

$ rpm-ostree override reset --all
Checking out tree b05d820... done
Resolving dependencies... done
error: Could not depsolve transaction; 1 problem detected:
 Problem: package sssd-common-2.9.3-1.fc39.x86_64 from @System requires (libsss_autofs(x86-64) = 2.9.3-1.fc39 if autofs), but none of the providers can be installed
  - package freeipa-client-4.11.0-7.fc39.x86_64 from @commandline requires autofs, but none of the providers can be installed
  - conflicting requests
$

Trying to remove the ipa-client (== freeipa-client) package

$ rpm-ostree remove ipa-client
Inactive base replacements:
  libsss_autofs
  sssd-dbus
  sssd-idp
  sssd-passkey
  sssd-tools
Checking out tree b05d820... done
Enabled rpm-md repositories: fedora-cisco-openh264 updates fedora copr:copr.fedorainfracloud.org:group_sssd:pr7034 updates-archive
Updating metadata for 'copr:copr.fedorainfracloud.org:group_sssd:pr7034'... done
error: Updating rpm-md repo 'copr:copr.fedorainfracloud.org:group_sssd:pr7034': Failed to download gpg key for repo 'copr:copr.fedorainfracloud.org:group_sssd:pr7034': Status code: 404 for https://download.copr.fedorainfracloud.org/results/@sssd/pr7034/pubkey.gpg (IP: 13.32.110.46)
$

OK, let's disable the missing repo...

$ rpm-ostree remove --disablerepo=copr:copr.fedorainfracloud.org:group_sssd:pr7034 ipa-client
Inactive base replacements:
  libsss_autofs
  sssd-dbus
  sssd-idp
  sssd-passkey
  sssd-tools
Checking out tree b05d820... done
Enabled rpm-md repositories: fedora-cisco-openh264 updates fedora copr:copr.fedorainfracloud.org:group_sssd:pr7034 updates-archive
Updating metadata for 'copr:copr.fedorainfracloud.org:group_sssd:pr7034'... done
error: Updating rpm-md repo 'copr:copr.fedorainfracloud.org:group_sssd:pr7034': Failed to download gpg key for repo 'copr:copr.fedorainfracloud.org:group_sssd:pr7034': Status code: 404 for https://download.copr.fedorainfracloud.org/results/@sssd/pr7034/pubkey.gpg (IP: 13.32.110.108)
$

let's try upgrade

$ rpm-ostree upgrade
2 metadata, 0 content objects fetched; 788 B transferred in 1 seconds; 0 bytes content written
Checking out tree bdd0afb... done
Inactive base replacements:
  libsss_autofs
  sssd-dbus
  sssd-idp
  sssd-passkey
  sssd-tools
Enabled rpm-md repositories: fedora-cisco-openh264 updates fedora copr:copr.fedorainfracloud.org:group_sssd:pr7034 updates-archive
Updating metadata for 'copr:copr.fedorainfracloud.org:group_sssd:pr7034'... done
error: Updating rpm-md repo 'copr:copr.fedorainfracloud.org:group_sssd:pr7034': Failed to download gpg key for repo 'copr:copr.fedorainfracloud.org:group_sssd:pr7034': Status code: 404 for https://download.copr.fedorainfracloud.org/results/@sssd/pr7034/pubkey.gpg (IP: 13.32.110.103)
$

OK, let's check the --help. No --disablerepo, no --override-reset but maybe --uninstall and/or --cache-only will help?

let's try with --cache-only

$ rpm-ostree upgrade --cache-only 
Checking out tree bdd0afb... done
Inactive base replacements:
  libsss_autofs
  sssd-dbus
  sssd-idp
  sssd-passkey
  sssd-tools
Enabled rpm-md repositories: fedora-cisco-openh264 updates fedora copr:copr.fedorainfracloud.org:group_sssd:pr7034 updates-archive
Updating metadata for 'copr:copr.fedorainfracloud.org:group_sssd:pr7034'... done
error: Updating rpm-md repo 'copr:copr.fedorainfracloud.org:group_sssd:pr7034': Failed to download gpg key for repo 'copr:copr.fedorainfracloud.org:group_sssd:pr7034': Status code: 404 for https://download.copr.fedorainfracloud.org/results/@sssd/pr7034/pubkey.gpg (IP: 13.32.110.103)

Isn't the cache only mode supposed to be equal to without network?

OK, let's try --uninstall ipa-client

$ rpm-ostree upgrade --uninstall ipa-client
2 metadata, 0 content objects fetched; 788 B transferred in 1 seconds; 0 bytes content written
Checking out tree bdd0afb... done
Inactive base replacements:
  libsss_autofs
  sssd-dbus
  sssd-idp
  sssd-passkey
  sssd-tools
Enabled rpm-md repositories: fedora-cisco-openh264 updates fedora copr:copr.fedorainfracloud.org:group_sssd:pr7034 updates-archive
Updating metadata for 'copr:copr.fedorainfracloud.org:group_sssd:pr7034'... done
error: Updating rpm-md repo 'copr:copr.fedorainfracloud.org:group_sssd:pr7034': Failed to download gpg key for repo 'copr:copr.fedorainfracloud.org:group_sssd:pr7034': Status code: 404 for https://download.copr.fedorainfracloud.org/results/@sssd/pr7034/pubkey.gpg (IP: 13.32.110.89)
$

now with -C

$ rpm-ostree upgrade --cache-only --uninstall ipa-client
Checking out tree bdd0afb... done
Inactive base replacements:
  libsss_autofs
  sssd-dbus
  sssd-idp
  sssd-passkey
  sssd-tools
Enabled rpm-md repositories: fedora-cisco-openh264 updates fedora copr:copr.fedorainfracloud.org:group_sssd:pr7034 updates-archive
Updating metadata for 'copr:copr.fedorainfracloud.org:group_sssd:pr7034'... done
error: Updating rpm-md repo 'copr:copr.fedorainfracloud.org:group_sssd:pr7034': Failed to download gpg key for repo 'copr:copr.fedorainfracloud.org:group_sssd:pr7034': Status code: 404 for https://download.copr.fedorainfracloud.org/results/@sssd/pr7034/pubkey.gpg (IP: 13.32.110.46)
$

possible rpm-ostree additions?

I'm essentially done here, I just can't see any clean path to resolve this state.

The cleanest solutions could be IMO:

Furthermore, I see these as issues:

djasa commented 5 months ago

Update: the permutation I missed is rpm-ostree override reset --uninstall ipa-client. I still think however that the issue is valid, there should be way out without removing the package and rather upgrading/reinstalling it from the base repos.