Repository navigation
integration: compose qualified CLI liveness and VM reattach inputs - #1442
Enrique Saurez (esaurez) wants to merge 8 commits into
Conversation
Port the preserved SL2.10 implementation and coupled callers, API snapshots, docs and real-process tests onto feature c52c710 without changing legacy lifecycle policy. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 0c8e42ad-4102-451f-96f0-0a4ae0483d1a
Port the scoped SL3.2b donor cf485b7 onto verified feature c52c710 without its historical producer history. Persist prepared capability and outputs before spawn, the matching process before commit, and every SavedVm field in the private runtime record. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eb3cc7e0-f51e-45ed-b911-c7b214740e05
Use the existing PID and atomic create-directory retry to retain unique fixture directories without a long diagnostic prefix. Keep the scenario name in creation errors. Capture and restore control sockets now fit approved data-volume temp roots without changing production limits, assertions, timeouts or skipped tests. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 0c8e42ad-4102-451f-96f0-0a4ae0483d1a
Apply the pinned rustfmt wrapping requested by the final-head review; fixture semantics and production source remain unchanged. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 0c8e42ad-4102-451f-96f0-0a4ae0483d1a
Port only SL3.3a onto coordinator-qualified SL3.2b 99d0045. Retain the prepared log claim and identity, hold and recheck the endpoint owner, and require the Linux log match. Preserve Windows job/handle fallback primitives and the donor fork-race fix without adding recovery or signaling. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eb3cc7e0-f51e-45ed-b911-c7b214740e05
Return Running or opaque exit proof after checking the recorded identity. Preserve indeterminate errors and current VM/transport verification policies. Keep the existing exit-handle and recovery tests alongside opening proof cases. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 0c8e42ad-4102-451f-96f0-0a4ae0483d1a
Compose exact qualified13bb and92ac as preserved parents for issue1108 SL3.3b. No producer tree replay or manual resolution. Joint QA remains pending. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eb3cc7e0-f51e-45ed-b911-c7b214740e05
This pull request changes existing testsIt modifies or removes 71 existing test asset(s), listed below. Review each with care: a change to a test can hide a regression that the test caught. See doc/contribute.md#changes-to-existing-tests. Test code
... and 21 more, which the job's summary lists. Relocated unchanged: 0; added: 54. Compared the merge base |
Compose the existing CLI liveness contract with SL2.10b Opened results. Preserve held-running versus proved-exited distinction and propagate lookup failures. Update only its existing own-process test helper. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eb3cc7e0-f51e-45ed-b911-c7b214740e05
There was a problem hiding this comment.
🔵 Needs a closer look
The exact joined source lacks independent joint Linux and Windows validation of its composed process-identity, exit-proof, CLI log-claim, and endpoint-liveness contracts.
No open issues 🎉
What changed in this PR
Composes the CLI launch-liveness and process/VM inputs from #1436 and #1438 as the foundation for #1108’s later recovery work. This integration does not implement recovery, and the joined source remains independently unqualified.
Changes:
- Reconciles CLI liveness and existing callers with explicit
Opened::RunningandOpened::Exitedresults. - Incorporates verified exit proofs, confirmed VM stopping, and separate outcome-report errors from the producer inputs.
- Updates tests, public API snapshots, and documentation while preserving legacy recovery and best-effort reporting policies.
| File | Description |
|---|---|
tests/runtime-adapter/tests/vm_steps.rs |
Matches the running-process variant in launch-step checks. |
tests/runtime-adapter/tests/vm_clone.rs |
Adapts clone checks to explicit opening and exit proofs. |
tests/runtime-adapter/tests/common/mod.rs |
Shortens sandbox paths and adapts process lookup. |
tests/runtime-adapter/src/bin/runtime-adapter-host.rs |
Handles exit proofs and report-read errors. |
nvx-rs/tests/template_capture.rs |
Adapts orphan cleanup to explicit process results. |
nvx-rs/tests/supervisor.rs |
Preserves lifecycle assertions with the new process API. |
nvx-rs/tests/store.rs |
Updates process lookup and recovery waits. |
nvx-rs/tests/fake_openvmm.rs |
Adapts reattachment and process-isolation assertions. |
nvx-rs/tests/cli/lifecycle.rs |
Updates lifecycle checks for explicit exit confirmation. |
nvx-rs/tests/cli/download.rs |
Isolates Unix executable copying from concurrent forks. |
nvx-rs/tests/cli.rs |
Updates recorded-process helpers and lifecycle waits. |
nvx-rs/tests/checked_handoff.rs |
Requires exit proofs in handoff checks. |
nvx-rs/src/host/vm/tests/reattach.rs |
Adapts the reattachment exit assertion. |
nvx-rs/src/host/vm/tests.rs |
Adds real-process stop coverage and adapts existing tests. |
nvx-rs/src/host/vm.rs |
Adds confirmed stopping and adapts saved-process verification. |
nvx-rs/src/host/transport/tests.rs |
Preserves unrelated-peer liveness checks. |
nvx-rs/src/host/transport.rs |
Handles explicit process-opening results before connection. |
nvx-rs/src/host/template/store/leases/tests.rs |
Updates lease recovery and cleanup process checks. |
nvx-rs/src/host/template/clone/tests/restore.rs |
Adapts restore liveness and exit assertions. |
nvx-rs/src/host/template/clone/tests/launch.rs |
Updates clone launch, recovery, and report checks. |
nvx-rs/src/host/template/clone/records.rs |
Preserves best-effort report reads. |
nvx-rs/src/host/supervisor/reattach.rs |
Maps explicit process results into existing reattachment policy. |
nvx-rs/src/host/store/vmm.rs |
Adapts live-process lookup. |
nvx-rs/src/host/store/locked.rs |
Preserves launch recovery behavior with explicit opening results. |
nvx-rs/src/host/restore/tests.rs |
Updates the held-process fixture. |
nvx-rs/src/host/report/tests.rs |
Tests missing, malformed, unreadable, and sharing-blocked reports. |
nvx-rs/src/host/report.rs |
Distinguishes missing reports from read and parse failures. |
nvx-rs/src/host/process/tests/linux.rs |
Updates Linux identity and final-thread checks. |
nvx-rs/src/host/process/tests.rs |
Adds recorded-identity and reaped-child opening coverage. |
nvx-rs/src/host/process.rs |
Introduces explicit opening results and opaque exit proofs. |
nvx-rs/src/host/platform/windows/tests.rs |
Adds a wait-only handle fixture for stop tests. |
nvx-rs/src/host/instance/locked.rs |
Retains legacy best-effort reporting. |
nvx-rs/src/host/cli/store/tests/liveness.rs |
Reconciles the own-process helper with Opened. |
nvx-rs/src/host/cli/store/liveness.rs |
Maps running and exited results while propagating errors. |
nvx-rs/src/error/tests.rs |
Includes StillRunning in error-code coverage. |
nvx-rs/src/error.rs |
Adds the StillRunning kind and code mappings. |
nvx-rs/README.md |
Documents process proofs, stopping, and report errors. |
nvx-rs/public-api/windows.txt |
Records the Windows public API additions. |
nvx-rs/public-api/linux.txt |
Records the Linux public API additions. |
doc/usage.md |
Documents the still-running error code. |
Review effort: Balanced
13bbbc8 to
b2dfce4
Compare
|
Superseded by the merged liveness and process-open integrations #1436 and #1438. This join's only additional production change, the explicit Closing only the redundant aggregate, while retaining its branch and source at |
Scope
Input-only integration for #1108 / SL3.3b, not the recovery implementation.
This is the actual composition requested for its two qualified functional
inputs, not a replay of either producer or a fabricated linear ancestry.
The normal two-parent merge is
9785ad4ac2ca4cbb54b36768fb71453f0b69d10b, tree96659c88a0634382ddd23307d1f47a1bd3faf27b.Its first parent is qualified SL3.3a from #1436,
13bbbc81c983c0bdfc66ddd149b146c05165ec29; its second parent is qualifiedSL2.10b from #1438,
92ac710d5ed88e0d14c4f36b2a7aafa9f7573f13.Both exact commits are ancestors. The OpenVMM pin remains
14dc4116ec7e57567633c4b7b07892aca3a58522.The current integration tip is
b134e702dc97feb620dfa642d0dac1fa46c33246, tree214e97e91cf3b8b618f14043216ac18a95509798.Its normal append commit reconciles the already-qualified
Process::openreturn type: CLI liveness accepts only
Opened::Runningas a held process,maps proved
Opened::Exitedto absence, and still propagates lookup errors.The existing own-process test helper uses the same explicit enum match.
The PR's actual base is the published branch of #1436. The secondary input
is explicit rather than pretending that base already contained #1438.
All four original producer branches and PRs remain unchanged.
Resolution and test accounting
The automatic textual merge was clean. A subsequent necessary two-file API
composition repair updates CLI liveness and its existing helper to the
secondary input's
Openedresult; it adds no producer API or assertionweakening. No test is retired.
The diff against the first parent is the existing qualified secondary
producer, including its tests, plus that explicitly listed compatibility
repair, not a new implementation of the producer. All other tests retain
their source definitions from the two input commits.
Qualification status
Draft; this exact joined source has independent Linux and Windows qualification.
The evidence below belongs to
b134e702dc97feb620dfa642d0dac1fa46c33246itself, not either producer and not the later recovery consumer. The selected
base remains
13bbbc81c983c0bdfc66ddd149b146c05165ec29; the secondaryinput remains
92ac710d5ed88e0d14c4f36b2a7aafa9f7573f13.The independently executed joint software gates cover the composed
process-identity and exit-proof APIs, VM stopping/reporting, CLI log claims
and endpoint liveness, affected callers and runtime-adapter checks:
41 Linux software gates and 30 Windows software gates passed, with zero
failures. These are gate-command counts, not a count of individual tests.
Current native, kernel, configuration and guest-input validation preceded
the actual cold runtime checks: MSHV 1 passed / 0 failed / 0 ignored and
WHP 1 passed / 0 failed / 0 ignored. Whole-owned-process closure was
confirmed on both hosts.
Sanitized exact-source qualification receipt:
{ "head": "b134e702dc97feb620dfa642d0dac1fa46c33246", "tree": "214e97e91cf3b8b618f14043216ac18a95509798", "inputs": [ "13bbbc81c983c0bdfc66ddd149b146c05165ec29", "92ac710d5ed88e0d14c4f36b2a7aafa9f7573f13" ], "openvmm": "14dc4116ec7e57567633c4b7b07892aca3a58522", "software": { "linux_gates": 41, "windows_gates": 30, "failures": 0 }, "runtime": { "mshv": { "passed": 1, "failed": 0, "ignored": 0 }, "whp": { "passed": 1, "failed": 0, "ignored": 0 }, "whole_owned_processes_remaining": 0 }, "current_guest_packet_sha256": "30dce6fa643dc54a0895741f8bda06eb355c0b91e090cbfe3cbfcd5371aa3a12", "native_review": { "head": "b134e702dc97feb620dfa642d0dac1fa46c33246", "model": "claude-opus-5.5", "reasoning": "max", "context": "long_context", "scope": "all changed full test/helper bodies, separate from consumer", "result": "clear", "source_only": true } }An earlier pre-use guest/source mismatch remains a failed attempt: no copy
or VM was started for that attempt. A fresh current Alpine family was
prepared and validated before the successful runtime checks above. The
explicit API-composition correction and its test accounting remain
disclosed above; no earlier mismatch is counted as a pass.
Full CI run 42856066537,
attempt 1, also completed successfully for this exact head and the selected
13bbbc81c983c0bdfc66ddd149b146c05165ec29base: 43 completed jobs =34 success + 9 conditional skips, with the run's Required status check
successful. Skipped publishing, performance, merge-group, debug-kernel
and pinned-OpenVMM jobs are not represented as executed coverage.
This receipt does not claim #1446 /
8921c451consumer QA, qualificationof a newer ultimate-feature integration, formal GitHub approval, or merge
readiness. The GitHub Copilot evidence-coverage concern is being reassessed
separately; "No open issues" alone does not close every review gate.
Historical initial-publication note (not the current qualification state):
The next scoped PR will branch above this published join and add SL3.3b's
own recovery delta. Its fresh review must cover the joined contracts, and
any exact-source joint validation will have its own explicit receipt.