[4.0] rpm-ostree 2026.1: `rpm-ostree upgrade` exits 0 without a new deployment on bootc hosts (upstream #5567, fixed in 2026.2)

Open
#18,802 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
68/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
linux

Research direction

Inspect the rpm-ostree spec on the 4.0 branch and compare its 2026.1 package with upstream 2026.2 and commits 242903283b and a194bf5375. Use the reported bootc host reproduction, then verify that rpm-ostree upgrade stages a changed image or prints "No upgrade available." when appropriate.

Written by the indexing model from the issue text.

Description

4.0 bug

Describe the bug

Azure Linux 4.0 ships rpm-ostree-2026.1-4.azl4 (preview repo; the 4.0 branch spec is at 2026.1). On a host installed with bootc install from an Azure Linux 4.0 bootc image, rpm-ostree upgrade pulls the new container image and exits 0 without staging a deployment. It prints no message. The result is the same with and without layered packages.

This is upstream rpm-ostree issue coreos/rpm-ostree#5567, fixed by coreos/rpm-ostree#5569 (commit 242903283b, with the follow-up a194bf5375 for the "No upgrade available." message). The fix is in rpm-ostree 2026.2 and later. Version 2026.1 has an early return in deploy_transaction_execute (src/daemon/rpmostreed-transaction-types.cxx) that ignores the changed base image for container origins.

To Reproduce

  1. Build a bootc image from mcr.microsoft.com/azurelinux-beta/base/core:4.0 with kernel bootc ostree bootupd rpm-ostree and the bootloader packages from the preview repo. Push it to a registry.
  2. Install it with bootc install to-disk and boot the host.
  3. Push a changed image under the same tag.
  4. On the host run rpm-ostree upgrade.

Output:

Pulling manifest: ostree-image-signed:docker://10.0.2.2:5000/azurelinux-bootc:dev

Exit code 0. rpm-ostree status shows no new deployment. journalctl -u rpm-ostreed shows only "Fetching ostree-image-signed:docker://..." and "Txn Upgrade ... successful".

bootc upgrade on the same host stages the new image. rpm-ostree deploy sha256:<digest> and rpm-ostree rebase ostree-image-signed:docker://.../azurelinux-bootc@sha256:<digest> also work, so the pull path is fine and only the upgrade transaction is affected.

Versions: rpm-ostree-2026.1-4.azl4, bootc-1.13.0-4.azl4, ostree-2025.7-5.azl4, kernel 6.18.45-1.3.azl4, x86_64.

Expected behavior

rpm-ostree upgrade stages the new image, or prints "No upgrade available." when there is none.

Request

Update rpm-ostree to 2026.2 or later on the 4.0 branch, or backport commits 242903283b and a194bf5375 from upstream.

Dominant language
Python
Stars
5.3k
Forks
707
Avg merge
2d 18h
Merged PRs (30d)
235

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from microsoft/azurelinux

All issues in microsoft/azurelinux

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.