test(windows): define GB300 MXC qualification contract (NVBug 6643699) - #3471
prekshivyas wants to merge 1 commit into
Conversation
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
6f19ff8 to
a131f93
Compare
Qualification before/after summaryNVBug: 6643699 — GB300 Windows-on-Arm MXC qualification scope is undefined Before: The repository had no GB300 WoA qualification contract, collector, validator, or contract tests. Required real-MXC/E2E rows could skip while the lane still exited successfully, and x64/NemoClaw evidence could be mistaken for native ARM64 coverage. After: The contract validates successfully and its regression suite passes 8/8, including negative cases for required skips, wrong-architecture substitution, missing exclusions, and artifact hash tampering. The collector verifies source/base identity, ARM64 PE inputs, host attestation, artifact hashes, and live host capability verdicts. Qualification status: Contract PASS; end-to-end qualification NOT YET PASS. The final-head collector failed closed at |
NVBug
NVBug 6643699 —
[GB300 WoA][Test Plan Blocker] OpenShell MXC test scope needs clarificationRoot cause
origin/windowshad capable MXC developer tests and example harnesses, but no repository-owned qualification contract for GB300 Windows ARM64. The real-MXC and Tier-3 E2E lanes were intentionally skip-safe, so a hardware-free run could exit 0; ownership, model/app scope, architecture credit, prerequisites, pass/fail criteria, and retained artifacts were not machine-enforced.Scope and fix
isolation_session, provider credentials, and ETW/OCSF are hardware/configuration-dependent optional rows.Base
Freshly fetched
origin/windows:fb2980e077288b61ef03a2e6187e162d158526aaHead:
a131f93886a3b29087b1d127e2aaadaa322de534Before / reproduction
On the unmodified base, a missing-contract assertion exited 1 in 0.173 s:
The existing E2E verdict failed only on harness errors or
FAIL;SKIPdid not fail the lane.After / verification
Negative evidence proven by regression tests: a required skip, native-x64/NemoClaw substitution, missing NemoClaw exclusion, mislabeled optional x64 evidence, and a tampered artifact hash all fail validation. Direct x64 invocation on the ARM64 host also exits 1 before running tests.
On final head
a131f938, the committed collector verified the exactorigin/windowsbase and clean worktree, ARM64 PE inputs, explicit GB300 attestation, contract integrity, SHA256 capture, and live host verdictsprocesscontainer=live/dryRun=ok; it correctly recordedisolation_sessionas optional/unavailable. With an authenticated read-only GitHub rate-limit input (not retained in evidence),arm64-msvc-checkthen completed successfully, including the pinned Z3 download and Windows dependency-tree assertion.A complete passing hardware evidence bundle is still not available. The subsequent
arm64-release-buildfailed closed once withos error 112. In a controlled retry, the host began with 12.17 GB free, again passedarm64-msvc-check, and entered the release build; two other OpenShell Cargo jobs then started on the shared host and droveC:to 0.10 GB. This task's run was stopped to protect the host before it could emitevidence.json, and its generated target was cleaned. There is no alternate data volume mounted. The failed/partial credential-redacted logs remain under task-specific evidence directories and are not represented as passing evidence.Earlier live exploratory execution passed all seven required dry-run cases plus the in-policy ProcessContainer write; the HTTPS case was stopped after an MXC proxy preflight stall. Read-only prior Windows-tip context showed the same source tests at 12/12 and E2E at
PASS=4 FAIL=0 SKIP=0, but the collector intentionally refuses to reuse that as current evidence.Security impact
No production runtime behavior or permissions change. Qualification becomes stricter: required skips, wrong architecture, stale/missing/out-of-root artifacts, and hash mismatches fail closed. The runner stages tracked fixtures plus freshly built ARM64 binaries, records hashes, keeps evidence outside the checkout, and does not accept credentials in retained required evidence.
Residual risk / platform limitations
wxc-exec.exe, ARM64 Node.js, versioned OpenClaw input, outbound fixture access, sufficient build disk, and an isolated qualification window without competing Cargo builds.isolation_sessionremains optional and OS/MXC-build dependent.