You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
NVX phase 1: minimal signed MicroVM integration - #1528
Phase 1 of the NVX integration stack.
Replace the active Nanvix integration with the minimum Windows x64 NVX captured create-and-run path, behind the existing microvm feature.
Phase 1 Image limitation: The workload image is fixed to mcr.microsoft.com/azurelinux/base/core:3.0. Requests cannot select another image. This is temporary and handled in phase two.
If this PR changes Cargo.lock, the dependency-feed-check check passes (see pull request builds)
📋 Issue Type
Bug fix
Feature
Task
GitHub Actions runs the PR validation build automatically. The ADO pipeline
(MXC-PR-Build) is the Azure version of the PR pipeline, kept in parity with the GitHub
Actions build; it runs on merge to main, and Microsoft reviewers with write access can trigger it
on a PR with /azp run. See pull request builds.
If the dependency-feed-check check fails on a new dependency, the crate must be added to
the feed before the PR can pass. See pull request builds
for the steps.
Link the root README to the SDK integration notes and document host prerequisites and policy restrictions there.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Restore the Nanvix guide unchanged from the PR base and keep the README and CI notes focused on the current integration.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This validator accepts whitespace-only commands, guest working directories longer than 4095 bytes, and more than 256 short environment entries, although the pinned NVX API rejects them. --dry-run therefore reports success, and actual execution can pull the image and boot a VM before client.exec rejects the request. Reject these deterministic cases here and cover them in the host-only request matrix. Calling client.validate_exec before provisioning can additionally guard the execution path, but does not replace validation used by dry-run.
Unbounded command output can exhaust executor memory
src/mxc-sdk/src/backends/nvx/runner.rs:90
The pinned NVX agent has no total output limit, and wait_with_output() collects both streams with read_to_end into growing vectors. An allowed command such as while :; do printf 'xxxxxxxxxxxxxxxx\n'; done with timeout disabled can exhaust the executor or embedding application's memory and abort it before stop/deprovision runs. Read both streams concurrently with a bounded capture budget, cancel execution on overflow, and still perform cleanup.
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
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.
📖 Description
Phase 1 of the NVX integration stack.
Replace the active Nanvix integration with the minimum Windows x64 NVX captured create-and-run path, behind the existing
microvmfeature.Phase 1 Image limitation: The workload image is fixed to
mcr.microsoft.com/azurelinux/base/core:3.0. Requests cannot select another image. This is temporary and handled in phase two.🔗 References
src/mxc-sdk/README.md#experimental-nvx-create-and-run✅ Checklist
Cargo.lock, thedependency-feed-checkcheck passes (see pull request builds)📋 Issue Type
GitHub Actions runs the PR validation build automatically. The ADO pipeline
(
MXC-PR-Build) is the Azure version of the PR pipeline, kept in parity with the GitHubActions build; it runs on merge to
main, and Microsoft reviewers with write access can trigger iton a PR with
/azp run. See pull request builds.If the
dependency-feed-checkcheck fails on a new dependency, the crate must be added tothe feed before the PR can pass. See pull request builds
for the steps.
Microsoft Reviewers: Open in CodeFlow