-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Address Sanitizer support in CoreCLR #74623
Conversation
Tagging subscribers to this area: @dotnet/runtime-infrastructure Issue DetailsThis is a PR to see what failures we get from enabling ASAN in our native builds. Now that we've solved the issues around exception handling and are getting some test suites to pass, it's worth taking a swing at the CI system again to see what failures we hit now.
|
…the runtime with native sanitizers enabled. Add a basic template for the YAML so we can at least get the pipeline created. I'll get the pipeline working in #74623
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I reviewed this offline with @jkoritzinsky and after the most recent set of changes, it looks good to me.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! 👍
Official build at https://dev.azure.com/dnceng/internal/_build/results?buildId=2222303&view=results |
/azp run runtime-sanitized |
Azure Pipelines successfully started running 1 pipeline(s). |
…th parallel stacks.
/azp run runtime-sanitized |
No commit pushedDate could be found for PR 74623 in repo dotnet/runtime |
/azp run runtime-sanitized |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-sanitized |
Azure Pipelines successfully started running 1 pipeline(s). |
Failures are unrelated. Merging in (finally)!!! |
This got broken in dotnet#74623.
This got broken in #74623.
Add ASAN-based testing to the runtime-sanitized pipeline for non-Windows platforms, and add some infrastructure for Windows-based runs.
This will help us catch the various kinds of bugs that AddressSanitizer can detect and keeps us ahead of the curve for any SDL requirements to use ASAN. We only enable ASAN legs for Linux_x64 and macOS x64 as the non-Intel platforms are "not supported" by LLVM (though the MacOS ARM64 platform can likely be added in the future). We don't add Windows legs as we're waiting on fixes in VS that will take a few months to get to a public release.
To build anything (except Mono) in this repo with AddressSanitizer enabled, you can add the
-fsanitize address
argument to any of our build entry-point scripts (./build.cmd/sh
,./src/coreclr/build-runtime.cmd/sh
, orsrc/tests/build.cmd/sh
).We should determine a schedule to run the runtime-sanitized pipeline on to ensure we get regular ASAN coverage, probably once a week is good.