fix(preflight): provision the darwin machine before probing podman (RIG-3563) - #1057
Open
rigel-mintaka wants to merge 1 commit into
Open
fix(preflight): provision the darwin machine before probing podman (RIG-3563)#1057rigel-mintaka wants to merge 1 commit into
rigel-mintaka wants to merge 1 commit into
Conversation
This was referenced Sep 10, 2026
rigel-mintaka
added this pull request to stack #1035
September 10, 2026 01:54
|
Compass engineering docs preview: https://compass-native-rig-3563-pref.compass-eng-docs.pages.dev Deployed from |
Base automatically changed from
compass-native/rig-3202-darwin-machine-ready
to
main
September 10, 2026 02:07
|
Merging to
After your PR is submitted to the merge queue, this comment will be automatically updated with its status. If the PR fails, failure details will also be posted here |
rigel-mintaka
force-pushed
the
compass-native/rig-3563-preflight-order
branch
from
September 10, 2026 02:28
116fee5 to
64837b6
Compare
…IG-3563)
On macOS every podman command that reaches the container ENGINE talks to
the Linux VM, so with no machine provisioned they do not report a missing
feature, they fail to connect at all. Measured on macOS 26.5.1 with
podman 5.8.6 and no machine, on the exact argv each check runs:
podman info -> 125
podman version --format {{.Client.Version}} -> 125
Both back FATAL preflight checks, and both ran BEFORE the darwin machine
check, whose adapter is the thing that provisions the VM. So on a fresh
Mac — the exact host the machine check exists to serve — provisioning
succeeded and the launch failed anyway, reporting "rootless podman is
required". Run deliberately does not short-circuit, so both failures were
already recorded by the time the machine came up.
Run the machine check first. That turns both probes from guaranteed
failures into real checks. Ordering the cheap version floor first instead
would refuse every fresh Mac rather than only below-floor ones, since it
cannot run without a machine either.
Execution order and REPORTING order are separate. The machine result is
appended after the two podman results, because Err formats in slice
order: on a Mac with no podman installed at all, the operator should read
the root cause first, not the symptom it causes.
The image check shells `podman image exists`, which also reaches the
engine, so it shares the precondition and joins the test's latch. Both
properties are pinned by assertions proven red against a deliberately
broken order.
§A3 fixes each check's SEVERITY but states no ordering constraint, so
this stays inside the frozen record. Verified on the Mac, not only
cross-compiled.
Refs RIG-3563, RIG-3202, RIG-1662.
Co-authored-by: Matt Wilkinson <matt@rigel.build>
rigel-mintaka
force-pushed
the
compass-native/rig-3563-preflight-order
branch
from
September 10, 2026 02:39
64837b6 to
cb1dbb9
Compare
rigel-mintaka
marked this pull request as ready for review
September 10, 2026 02:40
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
On macOS every podman command talks to the Linux VM, so with no machine
provisioned they do not merely report a missing feature, they fail to
connect at all. Measured on macOS 26.5.1 with podman 5.8.6 and no
machine:
Those two commands back preflight checks (2) and (3), and both are
FATAL. They ran BEFORE the darwin machine check, whose adapter is the
thing that provisions the VM. So on a fresh Mac — the exact host the
machine check exists to serve — provisioning succeeded and the launch
failed anyway, reporting "rootless podman is required". Run
deliberately does not short-circuit, so the two failures were already
recorded by the time the machine came up.
Move the darwin machine check ahead of the podman probes. The ensure
step provisions the VM first, which turns both probes from guaranteed
failures into real checks. §A3 fixes each check's SEVERITY but says
nothing about ORDER, so this is within the frozen record.
The regression test fails on the old order with the same copy the real
host produced. Verified on the Mac, not only cross-compiled.
Refs RIG-3563, RIG-3202, RIG-1662.
Co-authored-by: Matt Wilkinson matt@rigel.build