bootc-ubuntu-setup: Use fixed QEMU from Resolute - #53
Conversation
| trap cleanup EXIT | ||
|
|
||
| set +e | ||
| timeout --foreground --signal=TERM --kill-after=10s 90s \ |
There was a problem hiding this comment.
Hmm, this is all gross. I think what we should really do is have something like bcvk ephemeral selftest --image quay.io/centos-bootc/centos-bootc:stream9, like move some core smoke testing of functionality into the binary itself.
daa903d to
c772188
Compare
7e0c610 to
3110334
Compare
The Plucky QEMU used on Noble lacks the synchronous vhost-user notifier update needed to avoid lost virtiofs interrupts. Select Resolute's fixed emulator for virtualization jobs, including its matching iPXE ROM package so guests can actually boot. Keep this limited to Ubuntu 24.04 disposable runners: the package transaction also upgrades runtime dependencies. Exercise guest boot on the amd64 KVM runner. Since bcvk requires KVM and has no arm64 release asset, validate the installed arm64 emulator with a bounded TCG startup probe instead. Generated-by: AI Signed-off-by: Colin Walters <walters@verbum.org>
3110334 to
818ff7e
Compare
|
Ah right, I effectively bypassed the review requirement by using my bot account. Sorry about that. This is quite technically messy to handle, we'd need some database mapping between accounts. But cc e.g. @gursewak1997 for post-merge review. |
Let's have a discussion on this. Should we:
(There's many other possibilities here, like trying really hard to ensure everyone uses a shared, efficient prioritized work queue so we keep reviews moving, etc) |
|
Definitely a lot of options here. |
On ubuntu-24.04 the package install takes libc6 2.41 from plucky (the plucky source is at the default priority), and libc6 Breaks the older base-files, so os-release reports 25.04 from then on. workarounds.sh re-reads os-release and so skips its Resolute QEMU setup, which only runs on 24.04: the Resolute QEMU (bootc-dev#53) has never actually been installed on 24.04 consumers such as bcvk and ostree. This redoes bootc-dev#54, which was merged into the stacked support-ubuntu-2604-signoff branch after bootc-dev#52 had already landed, and so never reached main. install-deps.sh already reads os-release once before installing anything; record what it read as a step output and have workarounds.sh use that. The virtualization test now asserts that QEMU is at least 10.2, since a guest can boot with the old one too. Note this means the Resolute QEMU step now really runs on 24.04 libvirt jobs. Consumers can't trust os-release after this action either, so expose the detected value as the host-os output, on the deprecated bootc-ubuntu-setup entry point too. Generated-by: AI
The QEMU selected by our Ubuntu 24.04/Plucky setup lacks the synchronous vhost-user notifier update. Investigating bootc-dev/bootc#2290 produced a controlled CentOS 9 reproducer: moving virtiofs IRQ affinity stalled the unpatched emulator, while the matched patched build completed installation. The investigation and its limitations are recorded in the debug repository.
For
libvirt: trueon Ubuntu 24.04, install the fixed QEMU from Resolute, together with its matchingipxe-qemupackage. The latter is necessary: the first packaged-emulator smoke test failed before boot because its expectedefi-virtio.romwas missing. Keep Resolute at low default apt priority and explicitly request the virtualization packages. This still upgrades their runtime dependencies, including libc, on the disposable runner; it is not a standalone executable replacement.The step is explicitly limited to Ubuntu 24.04, leaving native Ubuntu 26.04 handling in #52 separate. Non-virtualization users are unchanged.
Add a bounded amd64/arm64 smoke test using the prebuilt CentOS Stream 9 image. It launches an ephemeral VM, verifies
uname -a && trueover SSH, and retains limited diagnostics before cleanup. No bootc image build is needed. SSH avoids unrelated bcvk 0.19--executeproblems uncovered during the experiment, including a false-success result when QEMU never booted.Validation
actionlint, composite shell syntax checks, and whitespace checks passed; independent AI review covered the final diff.The new shared-action/amd64/arm64 matrix is pending this PR's CI. The full PR-2290 composefs installation and reboot tuple also still needs a fresh CI run; the smoke checks establish package integration and guest execution, not that entire test.
Generated-by: AI
Implementation and tests were AI-generated. Human review and DCO signoff are still required; no Signed-off-by was added automatically.