Skip to content

fix: Fail iOS TSan CI on sanitizer reports - #1599

Draft
mrousavy wants to merge 1 commit into
mainfrom
fix/tsan-ci-reports
Draft

fix: Fail iOS TSan CI on sanitizer reports#1599
mrousavy wants to merge 1 commit into
mainfrom
fix/tsan-ci-reports

Conversation

@mrousavy

@mrousavy mrousavy commented Sep 5, 2026

Copy link
Copy Markdown
Member

An instrumented iOS app can report a data race and continue running, so passing Harness assertions do not establish a clean TSan run. Set SIMCTL_CHILD_TSAN_OPTIONS=halt_on_error=1:log_path=/tmp/nitro-tsan for the TSan row, print and fail on any report files even if Harness passed, and upload the reports after failures.

Validation:

  • Built and launched a deliberate C++ data race in an iOS 26.5 simulator with Apple's TSan runtime. With default options it printed the marker after the race; with halt_on_error=1 it stopped before that marker and wrote a symbolized report.
  • simctl launch --console returned zero in both cases, confirming the need to check report files explicitly. The exact workflow check exits 1 with the real report and 0 without reports. A clean instrumented simulator app creates no report files.
  • actionlint and git diff --check pass. Full Harness CI runs on this PR.

References: TSan runtime options, Harness 1.4.1 app-session handling.

@vercel

vercel Bot commented Sep 5, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
nitro-docs Ready Ready Preview Sep 5, 2026 12:59pm UTC

Request Review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant