fix(mxc): repair Windows inference demos (NVBug 6782874) - #3473
prekshivyas wants to merge 1 commit into
Conversation
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Qualification before/after summaryNVBug: 6782874 — shipped Windows inference demos cannot create a sandbox Before: Both shipped demos failed before After: Both demos use schema v2 and Qualification status: Local demo scenario PASS; cloud transport/sandbox scenario PASS, full authenticated cloud completion pending. No valid NVIDIA credential was available, so an HTTP 200 inference result is not claimed. The unrelated raw proxy probe hang and disk-exhausted repository-wide lane remain outside this focused proof; hosted CI still needs |
Summary
Fix both shipped MXC Windows inference demos for NVBug 6782874 and restore their authoritative source under
crates/openshell-driver-mxc/examples.The shared failure was chained configuration drift, not a permissive policy default:
isolation_sessionwhile also supplying filesystem policy, which that backend cannot enforce;This change makes both demos use schema v2 and the fail-closed
process_containerbackend, passes workload settings at sandbox creation, and keeps the checked-in templates portable.Base:
origin/windowsatfb2980e077288b61ef03a2e6187e162d158526aa.Related Issue
Changes
process_container.wxc-execportably; use an ephemeral gateway port and per-run temporary share.--driver-config-json; passNV_API_KEYthrough--env-fromwithout putting it in argv, config, or result artifacts.Before / After Evidence
Environment: Yukon Windows ARM64, Windows build 28000, Rust 1.95, native ARM64
wxc-exec; all evidence used binaries built from the base SHA above.Before, with the unmodified shipped defaults and only the documented
-WxcExecPathoverride:CreateSandbox:gateway config schema version is required; add [openshell] and version = 2.CreateSandbox, with the same schema-v2 diagnostic.examples/mxc-ollama.tomlwas absent.isolation_session.After, using the same base-built binaries and the repaired shipped runners:
CreateSandboxsucceeded withbackend=process_container, the in-sandbox request returned a completion, andsummary.txtreportedverdict=PASS. Gateway start through sandbox deletion took 1.37s.CreateSandboxsucceeded withbackend=process_container, governed TLS egress reached the active NVIDIA endpoint, and the script then failed usefully with the expected redacted HTTP 403Authorization failed. Sandbox creation-to-delete took 0.87s.openshell-gateway config preflight.Testing
Passed:
cargo fmt --all -- --checkuv run --no-project python scripts/update_license_headers.py --checkcargo test --release --target aarch64-pc-windows-msvc -p openshell-driver-mxc --test demo_examples— 5 passedcargo test --release --target aarch64-pc-windows-msvc -p openshell-driver-mxc --lib— 94 passedcargo package --list -p openshell-driver-mxc --allow-dirty— all demo assets presentKnown base/environment limitations observed:
unused_selfand twoneedless_updatefindings); the changed code is clean when those base findings are allowed.mise run pre-commitis blocked on Windows ARM64 bygrpcio-tools 1.78.0building under Python 3.14 with incompatible MSVC/std:c++17and/std:c11; the relevant format, license, PowerShell, Clippy, and Rust tests were run directly.pc_https_egress_reads_injected_ca_bundletest hung in its rawwxc-execproxy probe and was terminated after more than five minutes.Security Impact
The repair preserves fail-closed behavior. Each sandbox receives only its unique temporary share and one requested network endpoint; no broad AppContainer network capability is granted. Cloud traffic remains behind the enforcing CONNECT proxy. The cloud credential is forwarded by name at sandbox creation, never written to a template/result file, and never printed.
For local Ollama only, curl bypasses proxy variables for the explicitly requested loopback host because the proxy rejects loopback SSRF. MXC still restricts direct traffic to host loopback, but the existing driver limitation means this is host-loopback scope rather than per-service isolation; the README calls this out.
Residual Risk / Platform Limits
Checklist
origin/windowstip