Summary
PR #765 made rust-runtime-tsan advisory because we do not currently have a clean repo-side way to run ThreadSanitizer against hew-runtime. We should restore real blocking TSan coverage once the underlying Rust/Cargo sanitizer + -Zbuild-std debt is resolved.
Current state
rust-runtime-tsan in .github/workflows/nightly-sanitizers.yml is now advisory/non-blocking.
docs/release-runbook.md documents the waiver and the re-evaluation trigger.
- This is not currently treated as a v0.3.0 release blocker.
What we learned
- Nightly run
23996664465 fails because cargo +nightly test with -Zsanitizer=thread is effectively building against an unsanitized/prebuilt sysroot.
- Without
-Zbuild-std, we hit mixed-instrumentation / ABI-mismatch failures against core / compiler_builtins.
- With
-Zbuild-std, current toolchains still hit duplicate core / alloc lang-item failures and panic-strategy issues.
-Cunsafe-allow-abi-mismatch=sanitizer is not an acceptable workaround because it suppresses the safety guard and still leaves the sysroot story incorrect.
Desired outcome
- Re-enable a real
rust-runtime-tsan lane without continue-on-error.
- Do it without unsafe ABI-mismatch flags.
- Remove the waiver from the workflow and release docs when the toolchain path is viable again.
Acceptance criteria
- A clean end-to-end
rust-runtime-tsan run exists in .github/workflows/nightly-sanitizers.yml.
- The advisory wording /
continue-on-error can be removed.
docs/release-runbook.md is updated to drop the waiver.
- Any required upstream issue links or toolchain pinning are documented in the workflow comment or this issue.
Summary
PR #765 made
rust-runtime-tsanadvisory because we do not currently have a clean repo-side way to run ThreadSanitizer againsthew-runtime. We should restore real blocking TSan coverage once the underlying Rust/Cargo sanitizer +-Zbuild-stddebt is resolved.Current state
rust-runtime-tsanin.github/workflows/nightly-sanitizers.ymlis now advisory/non-blocking.docs/release-runbook.mddocuments the waiver and the re-evaluation trigger.What we learned
23996664465fails becausecargo +nightly testwith-Zsanitizer=threadis effectively building against an unsanitized/prebuilt sysroot.-Zbuild-std, we hit mixed-instrumentation / ABI-mismatch failures againstcore/compiler_builtins.-Zbuild-std, current toolchains still hit duplicatecore/alloclang-item failures and panic-strategy issues.-Cunsafe-allow-abi-mismatch=sanitizeris not an acceptable workaround because it suppresses the safety guard and still leaves the sysroot story incorrect.Desired outcome
rust-runtime-tsanlane withoutcontinue-on-error.Acceptance criteria
rust-runtime-tsanrun exists in.github/workflows/nightly-sanitizers.yml.continue-on-errorcan be removed.docs/release-runbook.mdis updated to drop the waiver.