coreos/rpm-ostree

Error rebasing using a layered OCI image

Closed this issue · 1 comments

This issue seems similar to #3827. I note from that ticket that this is fixed in 2022.16, but I cannot upgrade beyond rpm-ostree 2022.10 since I'm very stuck on rhel8 (for now). Will the fix be backported to the rhel8 branch?

Host system details
OS: rhel8
rpm-ostree version: 2022.10
ostree version: 2022.2

# rpm-ostree status
State: idle
Deployments:
● my-os/x86_64/testing.962
                Timestamp: 2023-08-05T01:03:36Z
                   Commit: 77d05a8c78028df4b3cc451ef391d0cd8651826367e4bd010993dc32587f92dc

Expected vs actual behavior

# rpm-ostree rebase --experimental --download-only ostree-unverified-registry:registry.name:5000/my-custom-image:latest
Pulling manifest: ostree-unverified-image:docker://registry.name:5000/my-custom-image:latest
Importing: ostree-unverified-image:docker://registry.name:5000/my-custom-image:latest (digest: sha256:601989a5dae07da15ad84f267c91b3c67dda49fee7f0834f7537b76a3dce5f5a)
ostree chunk layers stored: 0 needed: 1 (1.3 GB)
custom layers stored: 0 needed: 2 (17.8 MB)
Fetching ostree chunk sha256:f960a937b629 (1.3 GB)
Fetched ostree chunk sha256:f960a937b629
Fetching layer sha256:5f250121caf9 (414 bytes)
Fetched layer sha256:5f250121caf9
Fetching layer sha256:add4dfd423a2 (17.8 MB)
error: Importing: Parsing layer blob sha256:add4dfd423a2816a67d943c251af5ee0d6ad8079f1b0d2f3263643b31ff938c6: Failed to commit tar: ExitStatus(unix_wait_status(256)): error: ostree-tar: Processing deferred hardlink sysroot/ostree/repo/objects/4f/12409f8f6d6a80ad610be92415e3b5e2ae39d71160b8afb4528bc5b5146805.file: Failed to find object: No such file or directory: sysroot

Expected:
I don't have the expected output since this is the first time I'm trying to use ostree native containers, but I expected it to work :)

Steps to reproduce it
Here's my build process:

  • Create ostree commit using rpm-ostree compose
  • Containerize it using ostree container encapsulate --repo=$(pwd)/dist-repo <commit> oci-archive:derivitave-base:latest
  • Load the image to a local registry and then create a custom layer using
RUN rpm-ostree install host-bootstrap && \
    rpm-ostree cleanup -m && \
    ostree container commit
  • Push the resulting image to registry
  • On the client, attempt the rebase as described above.

Would you like to work on the issue?
I need assistance determining whether this will be backported to rhel8.

I need assistance determining whether this will be backported to rhel8.

At the current time, the focus of the people working on this repository is on operating systems newer than RHEL8. If you're asking about RHEL and you're a customer, there are channels for this.

The container flow is not officially productized in RHEL8 - it is however used by OpenShift 4, and we have newer rpm-ostree builds that land there. But that isn't intended for use outside of OpenShift 4.12 (the last version to use RHEL8). The source RPM looks like it's here https://access.redhat.com/downloads/content/rhel---8/x86_64/12753/rpm-ostree/2022.10.117.g52714b51-1.el8/x86_64/fd431d51/package

I suspect though this is isn't fixed there either, or in our rhel8 branch here; doing so would involve updating fixes from the ostree-ext side which we can't do without an important driver basically.

If there is someone willing to work on it, I could imagine creating a rhel8-newer branch here where people who want it could backport fixes. But for now, closing, sorry.