fedora-silverblue / issue-tracker

Fedora Silverblue issue tracker
https://fedoraproject.org/atomic-desktops/silverblue/
126 stars 3 forks source link

rpm-ostree fails to install a package on an OCI image #471

Closed mripard closed 1 year ago

mripard commented 1 year ago

Describe the bug I've rebased my Silverblue 38 install to an OCI image published on a Github registry.

The image is generated using that ContainerFile.

Once I rebooted into the image, calling rpm-ostree install on a package results in a failure with the error message error: Writing rpmdb: Failed to update rpmdb (rpmtsRun code -1)

To Reproduce Please describe the steps needed to reproduce the bug:

  1. From a Silverblue install: sudo rpm-ostree rebase ostree-unverified-registry:ghcr.io/mripard/fedora-silverblue-image:43d531d1b27ebd16133dda150c38f9d7a6afd1e7
  2. Reboot
  3. Run sudo rpm-ostree install simple-scan (or any other package, really)

Expected behavior The installation should run successfully, and the package should be installed on next reboot

OS version:

State: idle
AutomaticUpdates: stage; rpm-ostreed-automatic.timer: no runs since boot
BootedDeployment:
● ostree-unverified-registry:ghcr.io/mripard/fedora-silverblue-image:latest
                   Digest: sha256:7837a8ab99c0856d2ae1a736ef040fb8a21a95c8e85d1320f9db506c88171bee
                  Version: 38.20230603.0 (2023-06-03T12:23:05Z)

Additional context Here's the entire rpm-ostree install output:

Checking out tree f52c642... done
Enabled rpm-md repositories: fedora-cisco-openh264 fedora-modular updates-modular updates fedora rpmfusion-free-updates rpmfusion-free rpmfusion-nonfree-updates rpmfusion-nonfree tailscale-stable copr:copr.fedorainfracloud.org:phracek:PyCharm google-chrome rpmfusion-nonfree-nvidia-driver rpmfusion-nonfree-steam 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: 2023-06-03T03:15:48Z solvables: 1074
rpm-md repo 'updates' (cached); generated: 2023-06-03T02:39:02Z solvables: 14624
rpm-md repo 'fedora' (cached); generated: 2023-04-13T20:37:10Z solvables: 69222
rpm-md repo 'rpmfusion-free-updates' (cached); generated: 2023-05-31T11:11:21Z solvables: 71
rpm-md repo 'rpmfusion-free' (cached); generated: 2023-04-14T11:37:11Z solvables: 468
rpm-md repo 'rpmfusion-nonfree-updates' (cached); generated: 2023-05-31T11:29:46Z solvables: 34
rpm-md repo 'rpmfusion-nonfree' (cached); generated: 2023-04-14T12:02:51Z solvables: 235
rpm-md repo 'tailscale-stable' (cached); generated: 2023-06-02T02:03:38Z solvables: 77
rpm-md repo 'copr:copr.fedorainfracloud.org:phracek:PyCharm' (cached); generated: 2023-05-23T12:23:04Z solvables: 8
rpm-md repo 'google-chrome' (cached); generated: 2023-06-01T18:21:39Z solvables: 3
rpm-md repo 'rpmfusion-nonfree-nvidia-driver' (cached); generated: 2023-05-31T10:56:14Z solvables: 31
rpm-md repo 'rpmfusion-nonfree-steam' (cached); generated: 2023-05-19T19:13:13Z solvables: 2
rpm-md repo 'updates-archive' (cached); generated: 2023-06-03T03:32:39Z solvables: 15445
Resolving dependencies... done
Checking out packages... done
Running pre scripts... done
Running post scripts... done
Running posttrans scripts... done
Writing rpmdb... done
error: Writing rpmdb: Failed to update rpmdb (rpmtsRun code -1)

It seems like it has something to do with the rpmdb sqlite database not being in a proper state:

Jun 03 17:48:30 houat systemd[1]: Starting rpm-ostreed.service - rpm-ostree System Management Daemon...
Jun 03 17:48:30 houat rpm-ostree[10122]: Reading config file '/etc/rpm-ostreed.conf'
Jun 03 17:48:30 houat rpm-ostree[10122]: In idle state; will auto-exit in 62 seconds
Jun 03 17:48:30 houat systemd[1]: Started rpm-ostreed.service - rpm-ostree System Management Daemon.
Jun 03 17:48:30 houat rpm-ostree[10122]: client(id:cli dbus:1.171 unit:vte-spawn-2a3dd655-9f8e-499a-b40f-7bcf487ecff6.scope uid:0) added; new total=1
Jun 03 17:48:30 houat rpm-ostree[10122]: Loaded sysroot
Jun 03 17:48:30 houat rpm-ostree[10122]: Locked sysroot
Jun 03 17:48:30 houat rpm-ostree[10122]: Initiated txn PkgChange for client(id:cli dbus:1.171 unit:vte-spawn-2a3dd655-9f8e-499a-b40f-7bcf487ecff6.scope uid:0): /org/projectatomic/rpmostree1/fedora
Jun 03 17:48:30 houat rpm-ostree[10122]: Process [pid: 10115 uid: 0 unit: user@1000.service] connected to transaction progress
Jun 03 17:48:30 houat rpm-ostree[10122]: Librepo version: 1.15.1 with CURL_GLOBAL_ACK_EINTR support (libcurl/8.0.1 OpenSSL/3.0.8 zlib/1.2.13 brotli/1.0.9 libidn2/2.3.4 libpsl/0.21.2 (+libidn2/2.3.4) libssh/0.10.5/openssl/zlib nghttp2/1.52.0)
Jun 03 17:48:30 houat rpm-ostree[10122]: erreur : SELECT hnum, blob FROM 'Packages': 11: database disk image is malformed
Jun 03 17:48:30 houat rpm-ostree[10122]: erreur : SELECT hnum, blob FROM 'Packages': 11: database disk image is malformed
Jun 03 17:48:32 houat rpm-ostree[10122]: erreur : SELECT hnum, blob FROM 'Packages': 11: database disk image is malformed
Jun 03 17:48:33 houat rpm-ostree[10122]: Preparing pkg txn; enabled repos: ['fedora-cisco-openh264', 'fedora-modular', 'updates-modular', 'updates', 'fedora', 'rpmfusion-free-updates', 'rpmfusion-free', 'rpmfusion-nonfree-updates', 'rpmfusion-nonfree', 'tailscale-stable', 'copr:copr.fedorainfracloud.org:phracek:PyCharm', 'google-chrome', 'rpmfusion-nonfree-nvidia-driver', 'rpmfusion-nonfree-steam', 'updates-archive'] solvables: 102380
Jun 03 17:48:33 houat rpm-ostree[10122]: erreur : SELECT hnum, blob FROM 'Packages': 11: database disk image is malformed
Jun 03 17:48:33 houat rpm-ostree[10122]: No files matched %transfiletriggerin(lib) for glibc-common
Jun 03 17:48:33 houat rpm-ostree[10122]: No files matched %transfiletriggerin(lib64) for glibc-common
Jun 03 17:48:33 houat rpm-ostree[10122]: Executed %transfiletriggerin(glibc-common) for lib, lib64, usr/lib, usr/lib64 in 166 ms; 33511 matched files
Jun 03 17:48:33 houat rpm-ostree[10122]: Executed %transfiletriggerin(hicolor-icon-theme) for usr/share/icons/hicolor in 88 ms; 222 matched files
Jun 03 17:48:33 houat rpm-ostree[10122]: Executed %transfiletriggerin(glib2) for usr/lib64/gio/modules in 61 ms; 7 matched files
Jun 03 17:48:33 houat rpm-ostree[10122]: Executed %transfiletriggerin(glib2) for usr/share/glib-2.0/schemas in 71 ms; 112 matched files
Jun 03 17:48:34 houat rpm-ostree[10122]: Executed %transfiletriggerin(systemd-udev) for usr/lib/udev/hwdb.d in 288 ms; 37 matched files
Jun 03 17:48:34 houat rpm-ostree[10122]: Executed %transfiletriggerin(systemd-udev) for usr/lib/udev/rules.d in 22 ms; 118 matched files
Jun 03 17:48:34 houat rpm-ostree[10122]: No files matched %transfiletriggerin(usr/local/share/fonts) for fontconfig
Jun 03 17:48:34 houat rpm-ostree[10122]: No files matched %transfiletriggerin(usr/share/X11/fonts/TTF) for fontconfig
Jun 03 17:48:34 houat rpm-ostree[10122]: No files matched %transfiletriggerin(usr/share/X11/fonts/Type1) for fontconfig
Jun 03 17:48:34 houat rpm-ostree[10122]: Executed %transfiletriggerin(fontconfig) for usr/local/share/fonts, usr/share/X11/fonts/TTF, usr/share/X11/fonts/Type1, usr/share/fonts in 71 ms; 240 matched files
Jun 03 17:48:34 houat rpm-ostree[10122]: Executed %transfiletriggerin(shared-mime-info) for usr/share/mime in 23 ms; 877 matched files
Jun 03 17:48:34 houat rpm-ostree[10122]: Executed %transfiletriggerin(gdk-pixbuf2) for usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders in 85 ms; 14 matched files
Jun 03 17:48:34 houat rpm-ostree[10122]: Executed %transfiletriggerin(appstream) for usr/share/app-info/xmls in 339 ms; 7 matched files
Jun 03 17:48:34 houat rpm-ostree[10122]: Executed %transfiletriggerin(fedora-third-party) for usr/lib/fedora-third-party/conf.d in 98 ms; 3 matched files
Jun 03 17:48:34 houat rpm-ostree[10122]: Executed %transfiletriggerin(highcontrast-icon-theme) for usr/share/icons/HighContrast in 85 ms; 3458 matched files
Jun 03 17:48:34 houat rpm-ostree[10122]: Executed %transfiletriggerin(desktop-file-utils) for usr/share/applications in 27 ms; 86 matched files
Jun 03 17:48:34 houat rpm-ostree[10122]: Executed %transfiletriggerin(adwaita-icon-theme) for usr/share/icons/Adwaita in 84 ms; 2187 matched files
Jun 03 17:48:35 houat rpm-ostree[10122]: Executed %transfiletriggerin(gtk3) for usr/lib64/gtk-3.0/3.0.0/immodules in 76 ms; 1 matched files
Jun 03 17:48:35 houat rpm-ostree[10122]: Executed %transfiletriggerin(ibus) for usr/share/ibus/component in 163 ms; 10 matched files
Jun 03 17:48:35 houat rpm-ostree[10122]: erreur : SELECT hnum, blob FROM 'Packages': 11: database disk image is malformed
Jun 03 17:48:35 houat rpm-ostree[10122]: sanitycheck(/usr/bin/true) successful
Jun 03 17:48:35 houat rpm-ostree[10122]: erreur : SELECT hnum, idx FROM 'Basenames' WHERE key=?: 11: database disk image is malformed
Jun 03 17:48:35 houat rpm-ostree[10122]: erreur : SELECT hnum, idx FROM 'Basenames' WHERE key=?: 11: database disk image is malformed
Jun 03 17:48:35 houat rpm-ostree[10122]: erreur : SELECT hnum, idx FROM 'Basenames' WHERE key=?: 11: database disk image is malformed
Jun 03 17:48:35 houat rpm-ostree[10122]: erreur : SELECT hnum, idx FROM 'Basenames' WHERE key=?: 11: database disk image is malformed
Jun 03 17:48:35 houat rpm-ostree[10122]: erreur : SELECT hnum, idx FROM 'Basenames' WHERE key=?: 11: database disk image is malformed
Jun 03 17:48:35 houat rpm-ostree[10122]: erreur : SELECT hnum, idx FROM 'Basenames' WHERE key=?: 11: database disk image is malformed
Jun 03 17:48:35 houat rpm-ostree[10122]: erreur : SELECT hnum, idx FROM 'Basenames' WHERE key=?: 11: database disk image is malformed
Jun 03 17:48:35 houat rpm-ostree[10122]: erreur : SELECT hnum, idx FROM 'Basenames' WHERE key=?: 11: database disk image is malformed
Jun 03 17:48:35 houat rpm-ostree[10122]: erreur : SELECT hnum, blob FROM 'Packages' WHERE hnum=?: 11: database disk image is malformed
Jun 03 17:48:35 houat rpm-ostree[10122]: erreur : INSERT OR REPLACE INTO 'Packages' VALUES(?, ?): 11: database disk image is malformed
Jun 03 17:48:35 houat rpm-ostree[10122]: erreur : sqlite failure: RELEASE 'rwlock': database disk image is malformed
Jun 03 17:48:35 houat rpm-ostree[10122]: erreur : simple-scan-44.0-1.fc38.x86_64: installer échoué
Jun 03 17:48:35 houat rpm-ostree[10122]: erreur : sqlite failure: PRAGMA synchronous = FULL: Safety level may not be changed inside a transaction
Jun 03 17:48:35 houat rpm-ostree[10122]: erreur : sqlite failure: PRAGMA wal_checkpoint = TRUNCATE: database table is locked
Jun 03 17:48:35 houat rpm-ostree[10122]: Txn PkgChange on /org/projectatomic/rpmostree1/fedora failed: Writing rpmdb: Failed to update rpmdb (rpmtsRun code -1)
Jun 03 17:48:35 houat rpm-ostree[10122]: Unlocked sysroot
Jun 03 17:48:35 houat rpm-ostree[10122]: Process [pid: 10115 uid: 0 unit: user@1000.service] disconnected from transaction progress
Jun 03 17:48:35 houat rpm-ostree[10122]: client(id:cli dbus:1.171 unit:vte-spawn-2a3dd655-9f8e-499a-b40f-7bcf487ecff6.scope uid:0) vanished; remaining=0
Jun 03 17:48:35 houat rpm-ostree[10122]: In idle state; will auto-exit in 60 seconds
Jun 03 17:49:35 houat rpm-ostree[10122]: In idle state; will auto-exit in 60 seconds
Jun 03 17:49:35 houat systemd[1]: rpm-ostreed.service: Deactivated successfully.
Jun 03 17:49:35 houat systemd[1]: rpm-ostreed.service: Consumed 4.901s CPU time.

This doesn't happen when booting to the matching Fedora Silverblue image the OCI image is built from, so it looks like whatever happens in the Containerfile is causing that corruption, but it's not clear to me what, or how to reconstruct that DB properly.

travier commented 1 year ago

This is an rpm-ostree issue. Please file your issue there: https://github.com/coreos/rpm-ostree.

mripard commented 1 year ago

Thanks, I created a bug entry there: https://github.com/coreos/rpm-ostree/issues/4454