Skip to content

fix(urunc-deploy): use the host architecture for the QEMU path in config.toml - #1009

Open
aman21-droid wants to merge 1 commit into
urunc-dev:mainfrom
aman21-droid:fix/urunc-deploy-qemu-arch
Open

fix(urunc-deploy): use the host architecture for the QEMU path in config.toml#1009
aman21-droid wants to merge 1 commit into
urunc-dev:mainfrom
aman21-droid:fix/urunc-deploy-qemu-arch

Conversation

@aman21-droid

@aman21-droid aman21-droid commented Sep 2, 2026

Copy link
Copy Markdown

Description

On arm64 nodes urunc-deploy installed the QEMU binary as qemu-system-aarch64 but wrote
qemu-system-x86_64 into /etc/urunc/config.toml, so QEMU backed containers could not start.
install_artifacts uses qemu-system-$(uname -m) while the path in config.toml was fixed to
x86_64, and install_urunc_config copied that file to the host unchanged.

config.toml now carries a @QEMU_BINARY@ placeholder on the QEMU path line, and
install_urunc_config substitutes qemu-system-$(uname -m) as it copies the file.

Also adds deployment/urunc-deploy/config.toml to the paths: list in build-trigger.yml. The
Dockerfile COPYs that file into the image, but a change to it alone would not have triggered a
rebuild.

Related issues

How was this tested?

Ran the real install.sh against a reconstructed image layout with uname -m returning each
architecture:

  • aarch64: installs qemu-system-aarch64, configures /opt/urunc/bin/qemu-system-aarch64
  • x86_64: installs qemu-system-x86_64, configures /opt/urunc/bin/qemu-system-x86_64

The x86_64 output is byte identical to the config that shipped before this change, so there is no
behaviour change on amd64.

Fed the generated arm64 config to a locally built urunc and ran create/start on a qemu bundle. The
previous error is gone:

failed to apply rootfs mounts: failed to apply mount /opt/urunc/bin/qemu-system-x86_64:
failed to stat mount source /opt/urunc/bin/qemu-system-x86_64: no such file or directory

urunc now gets past the mount stage and reaches the monitor execve.

I do not have arm64 hardware, so the architecture-dependent half was exercised by controlling
uname -m rather than on a real arm64 node. The runtime half does not depend on host
architecture, it is a path that does not resolve.

LLM usage

Claude opus investigating the bug and fixes.

Checklist

  • I have read the contribution guide.
  • The linter passes locally (make lint).
  • The e2e tests of at least one tool pass locally (make test_ctr, make test_nerdctl, make test_docker, make test_crictl).
  • If LLMs were used: I have read the llm policy.

@netlify

netlify Bot commented Sep 2, 2026

Copy link
Copy Markdown

Deploy Preview for urunc ready!

Name Link
🔨 Latest commit b54b3a5
🔍 Latest deploy log https://app.netlify.com/projects/urunc/deploys/6a97e0432da15e0008cb9a1e
😎 Deploy Preview https://deploy-preview-1009--urunc.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@cmainas cmainas left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello @aman21-droid ,

thank you for the fix. Just one small comment.

Comment thread deployment/urunc-deploy/config.toml Outdated
@aman21-droid
aman21-droid force-pushed the fix/urunc-deploy-qemu-arch branch from 937d63c to 06cb428 Compare September 2, 2026 07:08

@cmainas cmainas left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @aman21-droid for the quick fix. Please squash your commits so we can merge this.

@aman21-droid
aman21-droid force-pushed the fix/urunc-deploy-qemu-arch branch from 06cb428 to 7965589 Compare September 2, 2026 07:45
@aman21-droid

Copy link
Copy Markdown
Author

done

Signed-off-by: aman21-droid <amanarora.smn@gmail.com>
@aman21-droid
aman21-droid force-pushed the fix/urunc-deploy-qemu-arch branch from 7965589 to b54b3a5 Compare September 2, 2026 08:37
@aman21-droid

Copy link
Copy Markdown
Author

@cmainas the CI runs are sitting in awaiting approval after the force-push —
could you hit 'Approve and run workflows' when you have a moment?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

urunc-deploy writes an x86_64 QEMU path into config.toml, so QEMU containers fail on arm64 nodes

2 participants