AWARE's Windows compiler auditor crashes when Windows reuses a PID during a full Cargo build.
Observed on Windows x64 at AWARE commit 5590f5af591b4cfe6c915237e7c32543edb87a3c, running the real closed offline release build from cli/build-windows-internal-repro.mjs. The preliminary cargo/rustc identity audits succeeded. The full Cargo audit recorded 77 process creations and 1,891 images before failing.
The retained report contains two link.exe lifetimes with PID 480. The first exited with status 0; the second was appended to report.processes and then failed at Dictionary.Add:
System.ArgumentException: An item with the same key has already been added.
at System.Collections.Generic.Dictionary`2.Insert(...)
at AwareCompilerAudit.Run(...)
cli/windows-compiler-audit.ps1 removes exited PIDs from active and handles, but retains them in records and breakpoints. A subsequent CREATE_PROCESS_DEBUG_EVENT for the same PID therefore throws. verifyCompilerAudit in cli/windows-compiler-closure.mjs also requires globally unique PIDs, and image attribution has no lifetime identifier.
Expected: PID reuse after a recorded exit is accepted, while overlapping live processes with the same PID remain invalid. Process images, DLLs, initial breakpoints and exits must remain bound to the correct lifetime. Complete job accounting and image authority verification must remain mandatory.
Related diagnostic gap: launchAuditor throws on auditor failure before runAuditedCompiler persists stdout/stderr. The failed full run also recorded a rustc exit 1 before the crash, but its raw diagnostic output was not retained. A successful rerun must establish whether a separate compiler failure remains.
Evidence is retained locally at C:/rvt-final-cache-20260903/aware-a/evidence/cargo-build-audit.local.json. No completed build, reproducibility result or release is claimed. A deterministic regression should replay CREATE(pid480), EXIT(pid480), CREATE(pid480), including fresh initial-breakpoint handling and distinct image attribution, then exercise the real native/full build.
Related: #488 (closed compiler authority), #480 (integration).
AWARE's Windows compiler auditor crashes when Windows reuses a PID during a full Cargo build.
Observed on Windows x64 at AWARE commit
5590f5af591b4cfe6c915237e7c32543edb87a3c, running the real closed offline release build fromcli/build-windows-internal-repro.mjs. The preliminary cargo/rustc identity audits succeeded. The full Cargo audit recorded 77 process creations and 1,891 images before failing.The retained report contains two
link.exelifetimes with PID 480. The first exited with status 0; the second was appended toreport.processesand then failed atDictionary.Add:cli/windows-compiler-audit.ps1removes exited PIDs fromactiveandhandles, but retains them inrecordsandbreakpoints. A subsequent CREATE_PROCESS_DEBUG_EVENT for the same PID therefore throws.verifyCompilerAuditincli/windows-compiler-closure.mjsalso requires globally unique PIDs, and image attribution has no lifetime identifier.Expected: PID reuse after a recorded exit is accepted, while overlapping live processes with the same PID remain invalid. Process images, DLLs, initial breakpoints and exits must remain bound to the correct lifetime. Complete job accounting and image authority verification must remain mandatory.
Related diagnostic gap:
launchAuditorthrows on auditor failure beforerunAuditedCompilerpersists stdout/stderr. The failed full run also recorded a rustc exit 1 before the crash, but its raw diagnostic output was not retained. A successful rerun must establish whether a separate compiler failure remains.Evidence is retained locally at
C:/rvt-final-cache-20260903/aware-a/evidence/cargo-build-audit.local.json. No completed build, reproducibility result or release is claimed. A deterministic regression should replay CREATE(pid480), EXIT(pid480), CREATE(pid480), including fresh initial-breakpoint handling and distinct image attribution, then exercise the real native/full build.Related: #488 (closed compiler authority), #480 (integration).