Toolbox: Locations owned by nobody:nobody can fail RPM transactions

Created on 7 Dec 2020  路  2Comments  路  Source: containers/toolbox

Describe the bug
Installing any libvirt related utilities such as libvirt-client or virt-viewer now fails within toolbox. It used to work before (up until a few weeks ago).

Now, it's met with:

Error unpacking rpm package libvirt-libs-6.6.0-3.fc33.x86_64
error: unpacking of archive failed on file /var/lib/libvirt: cpio: chown
error: libvirt-libs-6.6.0-3.fc33.x86_64: install failed

Steps how to reproduce the behaviour

  1. Inside a toolbox container, run sudo dnf install -y libvirt-client
  2. See error

Expected behaviour
libvirt-client should be installable inside of toolbox

Actual behaviour
An error happens when trying to install libvirt-libs

Output of toolbox --version (v0.0.90+)
toolbox version 0.0.97

Toolbox package info (rpm -q toolbox)
toolbox-0.0.97-1.fc33.x86_64

Output of podman version

Version:      2.2.0
API Version:  2.1.0
Go Version:   go1.15.5
Built:        Tue Dec  1 18:04:57 2020
OS/Arch:      linux/amd64

Podman package info (rpm -q podman)
podman-2.2.0-2.fc33.x86_64

Info about your OS
Fedora Silverblue 32

Additional context
We use the libvirt utilities while building VMs for Cockpit. This has worked in a toolbox container for over a year. It stopped being installable a few weeks ago. (I assumed it was something wrong on my system and/or the RPM itself, until I reinstalled Silverblue to get btrfs and tried rebuilding the container from scratch.)

Without this working properly, I will no longer be able to use Silverblue, as I depend on toolbox to let me build and run VMs inside a development container. :cry: I'm sure a lot of other developers might be in the same situation.

While the error looks similar to https://github.com/containers/toolbox/issues/629, I think this is different (although may have a similar root cause, with mapping the host directory into the container).

The most recent change related to libvirt I've seen is related to the minikube commit @ https://github.com/containers/toolbox/commit/a8a774269b4f0c17d4ad20eca99a53f50958e9b3 (from issue https://github.com/containers/toolbox/issues/379 / PR https://github.com/containers/toolbox/pull/548). Perhaps enabling minikube broke libvirt-related packages inside of toolbox?

1. Bug

All 2 comments

I've found a workaround to sudo umount /var/lib/libvirt before installing the package.

Hopefully a proper fix will come soon. (Meanwhile, adjusting my toolbox container build script...)

Yes, this is a known problem.

Here's the downstream Fedora bug: https://bugzilla.redhat.com/show_bug.cgi?id=1830830

Here's an attempted pull request to address this: https://github.com/containers/toolbox/pull/640

The problem is that, in rootless containers, bind mounts from the host have their ownership set to nobody:nobody if they aren't owned by the user. RPM doesn't like this and complains.

Was this page helpful?
0 / 5 - 0 ratings