Skip to content

Windows CI: vm-config lib test process crashes (STATUS_ACCESS_VIOLATION 0xc0000005) #65

Description

@mudcube

Context

After CI began running the suite (the working-directory: rust fix in #63), the windows-latest leg surfaced a hard crash unrelated to that PR's changes. The Windows CI leg is currently advisory (continue-on-error) so it doesn't block merges; this issue tracks diagnosing/fixing the crash.

Symptom

cargo test -p vm-config --lib exits abnormally with a memory access violation — not a normal assertion failure:

error: test failed, to rerun pass `-p vm-config --lib`
Caused by:
  process didn't exit successfully: `...\vm_config-*.exe --test-threads=10`
  (exit code: 0xc0000005, STATUS_ACCESS_VIOLATION)
note: test exited abnormally; to see the full output pass --no-capture to the harness.

Several detector::tests::* pass first, then the process crashes. Because the run uses --test-threads=10, the exact offending test isn't pinned.

Investigation notes

  • Re-run on Windows with --test-threads=1 --no-capture to isolate the crashing test.
  • A 0xc0000005 in safe Rust usually means a stack overflow (deep recursion) or a bug in a native/unsafe dependency. This PR (Update all dependencies, fix clippy/tests, and repair CI #63) bumped many deps (git2 0.21, nix 0.31, sysinfo 0.39, etc.) — a Windows-specific regression in one of them is plausible. cargo tree -p vm-config + bisecting deps is a likely path.
  • Unrelated but adjacent: validate::tests::test_valid_config was also failing on Windows due to a Unix-only starts_with('/') absolute-path check — already fixed in Update all dependencies, fix clippy/tests, and repair CI #63 (now uses Path::is_absolute()). This crash is separate.

Evidence

Failing run (commit d67c747): https://github.com/goobits/vm/actions/runs/28057405127/job/83063072548

Done when

The vm-config test binary runs to completion on Windows and the continue-on-error advisory flag can be removed from the Windows matrix leg in .github/workflows/ci.yml.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions