coreos / rpm-ostree

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

Segmentation fault when trying to overlay a copr repo #4393

Closed luminoso closed 1 year ago

luminoso commented 1 year ago

Host system details

Provide the output of rpm-ostree status.

● fedora:fedora/38/x86_64/kinoite
                  Version: 38.20230503.0 (2023-05-03T02:14:20Z)
               BaseCommit: 8980e2592ad5eb83dbaf7d27e162b6cc29640e81af0ebd5f85651cef6f3d07a8
             GPGSignature: Valid signature by 6A51BBABBA3D5467B6171221809A8D7CEB10B464
      RemovedBasePackages: kernel-modules-extra kernel-core kernel kernel-modules 6.2.14-300.fc38 kwrite 22.12.3-1.fc38 mesa-va-drivers 23.0.3-1.fc38
          LayeredPackages: 'gcc-c++' automake binutils cmake code colordiff conda containerd.io ddcutil docker-buildx-plugin docker-ce docker-ce-cli
                           docker-compose-plugin elfutils exa fd-find fzf gcc gdb git git-lfs glibc-devel golang google-chrome-stable google-cloud-cli
                           google-cloud-cli-app-engine-go google-cloud-cli-gke-gcloud-auth-plugin htop just k9s kate keepassxc kernel-cachyos-bore
                           kernel-cachyos-bore-devel kernel-cachyos-bore-headers krita krusader kubectl libtool libva-utils lm_sensors make meld
                           mesa-va-drivers-freeworld mpv NetworkManager-tui nextcloud-client nextcloud-client-dolphin npm openh264 patch patchutils python3-devel
                           rclone redhat-lsb-core rpmfusion-free-release rpmfusion-nonfree-release starship tlp uksmd uptimed v4l-utils vim-enhanced vnstat yakuake
                           ydotool zsh
            LocalPackages: teamviewer-15.41.7-0.x86_64

Expected vs actual behavior

I am trying to use zawertun kde copr that has updated kde packages for fedora.

If this was done with dnf all I had to do is to enable the copr repository and do dnf upgrade. With rpm-ostree not so much.

Steps:

  1. Manually enable the repo: cd /etc/yum.repos.d && sudo wget https://copr.fedorainfracloud.org/coprs/zawertun/kde/repo/fedora-38/zawertun-kde-fedora-38.repo

And then according to rpm-ostree documentation on how to overlay packages from a repository I need to know which packages I'll replace. which I do, by:

toolbox enter

# list the repo packages, filtering out the debuginfo, debugsouce and .src packages
dnf --disablerepo="*" --enablerepo="copr:copr.fedorainfracloud.org:zawertun:kde" list |grep copr| grep "x86_64"| grep -v debuginfo | grep -v debugsource|grep -v devel |cut -d'.' -f1 > packages

exit toolbox and:

❯ sudo rpm-ostree override replace --experimental --freeze --from repo='copr:copr.fedorainfracloud.org:zawertun:kde' $(cat packages)
error: Remote peer disconnected

Which fails.

However I can see on journalctl bunch of packages being download by rpm-ostree.

Since --freeze is not documented anywhere I tried to run without it, which seems to work better until a segmentation fault:

❯ sudo rpm-ostree override replace --experimental --from repo='copr:copr.fedorainfracloud.org:zawertun:kde' $(cat packages) 
Inactive base replacements:
  akonadi-calendar-tools
  akonadi-import-wizard
  akonadiconsole
  akregator
  akregator-libs
  analitza
  artikulate
  artikulate-libs
  blinken
  bup
  cantor
  cantor-libs
  cervisia
  dragon
  elisa-player
  grantlee-editor
  grantlee-editor-libs
  grub2-breeze-theme
  juk
  k3b
  k3b-libs
  kaddressbook
  kaddressbook-libs
  kalarm
  kalendar
  kalzium
  kalzium-libs
  kamoso
  kanagram
  kate
  kate-plugins
  kbackup
  kbruch
  kcachegrind
  kcachegrind-converters
  kcolorchooser
  kcron
  kde-connect-nautilus
  kde-kup
  kde-style-sierra-breeze-enhanced
  kdebugsettings
  kdenetwork-filesharing
  kdepim-addons
  kdepim-runtime
  kdepim-runtime-libs
  kdf
  kf5-akonadi-calendar
  kf5-akonadi-contacts
  kf5-akonadi-mime
  kf5-akonadi-notes
  kf5-akonadi-search
  kf5-calendarsupport
  kf5-eventviews
  kf5-grantleetheme
  kf5-incidenceeditor
  kf5-kcalendarutils
  kf5-kconfig
  kf5-kdav
  kf5-kdesignerplugin
  kf5-kdewebkit
  kf5-kemoticons
  kf5-kidentitymanagement
  kf5-kimap
  kf5-kio
  kf5-kipi-plugins
  kf5-kipi-plugins-libs
  kf5-kitinerary
  kf5-kjsembed
  kf5-kldap
  kf5-kmailtransport
  kf5-kmailtransport-akonadi
  kf5-kmbox
  kf5-kmediaplayer
  kf5-kmime
  kf5-kontactinterface
  kf5-kpimtextedit
  kf5-kpkpass
  kf5-kplotting
  kf5-kross
  kf5-kross-core
  kf5-kross-ui
  kf5-ksanecore
  kf5-ksmtp
  kf5-ktnef
  kf5-libgravatar
  kf5-libkcddb
  kf5-libkdepim
  kf5-libkipi
  kf5-libkleo
  kf5-libksane
  kf5-libksieve
  kf5-libktorrent
  kf5-mailcommon
  kf5-mailimporter
  kf5-mailimporter-akonadi
  kf5-messagelib
  kf5-pimcommon
  kf5-pimcommon-akonadi
  kf5-sonnet
  kfloppy
  kgamma
  kgeography
  kget
  kget-libs
  kgpg
  khangman
  kig
  kigo
  kio-extras-info
  kiten
  kiten-libs
  kleopatra
  kleopatra-libs
  klettres
  kmail
  kmail-account-wizard
  kmail-libs
  kmix
  kmouth
  kmplot
  knotes
  knotes-libs
  kolourpaint
  kolourpaint-libs
  kompare
  kompare-libs
  konqueror
  konqueror-libs
  kontact
  kontact-libs
  korganizer
  korganizer-libs
  kpat
  kqtquickcharts
  krdc
  krdc-libs
  kruler
  ksshaskpass
  ksystemlog
  kteatime
  ktimer
  ktorrent
  ktorrent-libs
  ktouch
  ktp-accounts-kcm
  ktp-approver
  ktp-auth-handler
  ktp-common-internals
  ktp-contact-list
  ktp-contact-runner
  ktp-desktop-applets
  ktp-filetransfer-handler
  ktp-kded-integration-module
  ktp-send-file
  ktp-text-ui
  kturtle
  kwave
  kwebenginepart
  kwordquiz
  libkdegames
  libkeduvocdocument
  libkomparediff2
  lokalize
  marble
  marble-astro
  marble-qt
  marble-widget-qt5
  minuet
  okular-mobile
  parley
  peruse
  pim-data-exporter
  pim-data-exporter-libs
  pim-sieve-editor
  plasma-desktop-emojier
  plasma-desktop-kimpanel-ibus
  plasma-desktop-kimpanel-scim
  plasma-discover-offline-updates
  plasma-discover-packagekit
  plasma-discover-snap
  plasma-firewall
  plasma-firewall-firewalld
  plasma-firewall-ufw
  plasma-nm-fortisslvpn
  plasma-nm-iodine
  plasma-nm-l2tp
  plasma-nm-mobile
  plasma-nm-openswan
  plasma-nm-pptp
  plasma-nm-ssh
  plasma-nm-sstp
  plasma-nm-strongswan
  plasma-oxygen
  plasma-sdk
  plymouth-kcm
  poxml
  python3-cantor
  qcachegrind
  qqc2-breeze-style
  qt5-style-oxygen
  rocs
  rocs-libs
  signon-kwallet-extension
  skanlite
  skanpage
  step
  svgpart
  sweeper
  umbrello
  yakuake
  zanshin
Checking out tree 8980e25... done
Enabled rpm-md repositories: fedora-cisco-openh264 fedora-modular updates-modular updates fedora google-chrome rpmfusion-free-updates rpmfusion-free rpmfusion-nonfree-updates rpmfusion-nonfree copr:copr.fedorainfracloud.org:bieszczaders:kernel-cachyos copr:copr.fedorainfracloud.org:zawertun:kde copr:copr.fedorainfracloud.org:bieszczaders:kernel-cachyos-addons code copr:copr.fedorainfracloud.org:atim:starship copr:copr.fedorainfracloud.org:luminoso:k9s brave-browser google-cloud-cli docker-ce-stable virtualbox teamviewer updates-archive
Importing rpm-md... done
rpm-md repo 'fedora-cisco-openh264' (cached); generated: 2023-03-14T10:56:46Z solvables: 4
rpm-md repo 'fedora-modular' (cached); generated: 2023-04-13T20:30:47Z solvables: 1082
rpm-md repo 'updates-modular' (cached); generated: 2018-02-20T19:18:14Z solvables: 0
rpm-md repo 'updates' (cached); generated: 2023-05-03T02:21:04Z solvables: 8678
rpm-md repo 'fedora' (cached); generated: 2023-04-13T20:37:10Z solvables: 69222
rpm-md repo 'google-chrome' (cached); generated: 2023-05-03T20:09:21Z solvables: 3
rpm-md repo 'rpmfusion-free-updates' (cached); generated: 2023-05-03T16:18:39Z solvables: 55
rpm-md repo 'rpmfusion-free' (cached); generated: 2023-04-14T11:37:11Z solvables: 468
rpm-md repo 'rpmfusion-nonfree-updates' (cached); generated: 2023-05-03T16:36:20Z solvables: 9
rpm-md repo 'rpmfusion-nonfree' (cached); generated: 2023-04-14T12:02:51Z solvables: 235
rpm-md repo 'copr:copr.fedorainfracloud.org:bieszczaders:kernel-cachyos' (cached); generated: 2023-05-02T12:25:24Z solvables: 42
rpm-md repo 'copr:copr.fedorainfracloud.org:zawertun:kde' (cached); generated: 2023-04-21T18:56:12Z solvables: 3499
rpm-md repo 'copr:copr.fedorainfracloud.org:bieszczaders:kernel-cachyos-addons' (cached); generated: 2023-03-09T21:10:21Z solvables: 4
rpm-md repo 'code' (cached); generated: 2023-05-02T13:44:35Z solvables: 3322
rpm-md repo 'copr:copr.fedorainfracloud.org:atim:starship' (cached); generated: 2023-04-25T10:58:38Z solvables: 2
rpm-md repo 'copr:copr.fedorainfracloud.org:luminoso:k9s' (cached); generated: 2023-02-15T13:53:36Z solvables: 2
rpm-md repo 'brave-browser' (cached); generated: 2023-05-03T20:47:19Z solvables: 22
rpm-md repo 'google-cloud-cli' (cached); generated: (invalid timestamp) solvables: 5658
rpm-md repo 'docker-ce-stable' (cached); generated: 2023-04-26T19:10:35Z solvables: 9
rpm-md repo 'virtualbox' (cached); generated: 2023-04-18T12:55:16Z solvables: 11
rpm-md repo 'teamviewer' (cached); generated: 2023-04-26T02:54:11Z solvables: 101
rpm-md repo 'updates-archive' (cached); generated: 2023-05-03T02:52:18Z solvables: 7112
Resolving dependencies... done
error: Bus owner changed, aborting. This likely means the daemon crashed; check logs with `journalctl -xe`.

Which makes rpm-ostree to crash.

Journalctl stacktrace attached here: rpm-ostree-stacktrace.txt

I can upload the coredump somewhere if needed.

  1. Is there anyway to do this use-case easier with rpm-ostree?
  2. What does --freeze actually do?
  3. Any workaround or suggestion on how to proceed?
cgwalters commented 1 year ago

From the stack trace:

                                                     #3  0x00007f3ab59d4f4e g_assertion_message.cold (libglib-2.0.so.0 + 0x1ff4e)
                                                     #4  0x00007f3ab5a403e8 g_assertion_message_cmpnum (libglib-2.0.so.0 + 0x8b3e8)
                                                     #5  0x000055dbd220a3d6 _ZL19check_goal_solutionP17_RpmOstreeContextP10_GPtrArrayP11_GHashTablePP7_GError.lto_priv.0 (rpm-ostree + 0x29e3d6)

This looks likely to be fixed by https://github.com/coreos/rpm-ostree/pull/4456 - closing, but please reopen if it's not fixed.