Repository navigation
fix(ci): isolate the dispatcher's KVM probe - #7598
Conversation
Quest-Claim: 8cb80078a7c5e978
Co-Authored-By: GPT-6.1 Sol <noreply@openai.com>
Co-Authored-By: GPT-6.1 Sol <noreply@openai.com>
Co-Authored-By: GPT-6.1 Sol <noreply@openai.com>
|
No actionable comments were generated in the recent review.
|
kixelated
left a comment
There was a problem hiding this comment.
Automated review by review (OpenAI)
Reviewed commit: bda6834
No actionable bugs found. The fixed KVM probe helper is a small, appropriate test seam: it preserves the production /dev/kvm predicate without adding a runtime override. Helper-only edits select orchestration checks, and the new refusal test covers both local and strict CI modes while ensuring independent modules continue.
Verification: static review of the dispatcher, fixture setup, helper and changed tests. I did not run tests, Nix builds, or device-isolation checks; the PR's reported host-policy and JS-test failures were not independently reproduced.
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes
Reviewed the full diff of bda683464 against main (bc2468e8b): 5 files.
- KVM probe extracted to
sh/kvm.sh—sh/dispatch.shcallsbash sh/kvm.shinstead of inlining! -e /dev/kvm, preserving the Linux x86_64 refusal and its/dev/kvm is missingdiagnostic and exit status. - Orchestration selector covers the helper —
sh/kvm.shjoins the root-orchestration regex, so a helper-only edit forces the full gate. - Dispatcher fixture stubs the probe —
sh/dispatch-query.test.pywrites a fixed stub insetUp; the newtest_missing_kvm_refuses_flake_without_skipping_or_cancelling_other_modulescovers both localcheckand strictci(exit 1, names/dev/kvm, no(skipped), never runsnix flake check, still runsgh test).test_orchestration_and_all_select_worknow coverssh/kvm.sh. - Quest retired — deletes
quest/m0/ci/dispatch-test-kvm.mdand its README entry.
Verified locally: all 31 sh/dispatch-query.test.py tests pass, including the three flake-mode tests and the new refusal test, and shellcheck sh/kvm.sh is clean.
deepseek-v4.1-flash (free via Pullfrog for OSS) | 𝕏
|
quest land watch: the merge queue removed this pull request at bda6834 because it conflicts with The land fixer works on it in the background, and the watcher re-enqueues it at the back of the queue once it is fixed or judged flaky, or hands it back here with what it needs. (written by quest land watch) |
|
quest land watch: the merge queue removed this pull request at 36309c5 because it conflicts with The land fixer works on it in the background, and the watcher re-enqueues it at the back of the queue once it is fixed or judged flaky, or hands it back here with what it needs. (written by quest land watch) |

Problem
The dispatcher's mocked CI runs still inspect the host's
/dev/kvm. Hiding that device reproduces 20 failures across the 30 existing tests, although no VM is started.Approach
Extract the unchanged existence probe into
sh/kvm.shand stub that fixed helper in the dispatcher fixture. Cover missing KVM in local and strict CI modes: fail the flake lane, name/dev/kvm, never invokenix flake check, and finish independent modules. Existing capable-builder tests cover available KVM. Include the helper in the orchestration selector, cover helper-only edits, and remove the completed quest and its link.Impact
/dev/kvmwith the same diagnostic and exit status.Alternatives
A configurable device path would add a production override solely for tests. A fixed probe helper keeps that control in the fixture.
Decisions
Used a fixed helper rather than an environment override; covered both local and strict CI refusal.
Checks
Gate on merge head
eee0fed010(main atda5c2afade):quest gate nix develop --ignore-environment --keep HOME --keep USER --keep PATH --command just ci origin/main, with the dev shell's PATH deduplicated as moq-dev/moq#7594 does (mbx'sE2BIGcame from nested shells duplicating PATH). 1553 s wall time; every lane passed except the two below, neither caused by this PR.sh/dispatch-query.test.pytests pass. Before the fix, 20 failed with/dev/kvmhidden in a private Bubblewrap/devmount; after it, all pass in the same namespace. The real helper returns 0 with/dev/kvmpresent and 1 with it hidden.check flakefailed:github-runner.drvstops atunshare: write failed /proc/self/uid_map: Operation not permitted. This host setskernel.apparmor_restrict_unprivileged_userns=1without thenix-repart-unshareprofile fromnix/runner/unshare.nix. Main fails identically here. That's by design: strictjust cirequires the full flake check and never probes (moq-dev/moq#6823,doc/setup/dev.md). The non-strict probe is correct on this host:nix build --file nix/runner/userns-probe.nixexits 77 withMOQ_USERNS_UNAVAILABLE(the sameuid_maprefusal), sojust checkreports flake as skipped. An earlier report that the probe passes here was wrong.test jsfailed 1 of 2689:a peer close drains the overtaken fin over moq-lite-02atjs/net/src/lite/connection.test.ts:394(expected"frame 0", receivedundefined). Run alone on the same head, the file failed 2 of 57: the lite-03 and lite-04 cases. This PR changes nothing underjs/(git diff origin/main HEAD -- jsis empty). The flake is planned as/quest/m0/test-flakes-2/js-close-drain.mdin moq-dev/moq#7590. Not bypassed.quest checkpassed.bda683464cmerges mainbc2468e8be, which changes onlyquest/. On that head,quest check --base origin/mainpasses and all 31 dispatcher tests pass again.Review
mechanical fix by quest land watch:
merged main at 6944d3d2a8e8707032067be9651ec467ad78d036 with the quest merge driver(head 62c7d45)mechanical fix by quest land watch:
merged main at 04e9b36f89ad108fa1de5c84fbe6ba9d75ca2d28 with the quest merge driver(head 36309c5)Claude Code,
claude-opus-5-5, medium effort, round 2 reviewedee7a55e22ae4b7aee095840397c90d0102ccb8aaagainstorigin/main(21d6da9fc108b48373a961f34e43c3fcd38b0146): no findings. Since then the branch has had only conflict-free merges frommain(eee0fed010,bda683464c), and the PR's patch is unchanged. The guide's review exemption covers headbda683464c40d93cd7f22b0f36343b63f07a3d1b.sh/kvm.shin the orchestration selector and cover helper-only edits./dev/nulland admit a production check without KVM. The fixed helper preserves the exact/dev/kvmpredicate; the real helper was also checked with the device present and hidden. The reviewer accepted the response in round 2.Follow-ups
uid_maprefusal is host policy, whichnix/runner/README.mddocuments.(Written by GPT-6.1 Sol; updated by Claude Opus 5.5)