-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Run HTTP3 stress with Adress sanitization #100023
Conversation
Tagging subscribers to this area: @dotnet/ncl |
/azp list |
/azp run runtime-libraries stress-http |
Azure Pipelines successfully started running 1 pipeline(s). |
Since we have support to build the runtime with ASAN enabled, could we instead use that instead of only sanitizing msquic? That way you'll get default settings that will definitely work and you won't have to use LD_PRELOAD. |
when I tried this locally, it complained at runtime about some version mismatch (msQuic also adds a lot more options to -fsanitize). I wonder, is there a way to get the managed callstacks show as well on the asan output? |
/azp run runtime-libraries stress-http |
Azure Pipelines successfully started running 1 pipeline(s). |
Yeah in that case then you're doing the right thing for now.
The regular xunit tests have some logic today to dump managed callstacks from dumps. We could use similar logic in the container to symbolize. |
/azp run runtime-libraries stress-http |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-libraries stress-http |
Azure Pipelines successfully started running 1 pipeline(s). |
Got a hit
|
/azp run runtime-libraries stress-http |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-libraries stress-http |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-libraries stress-http |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-libraries stress-http |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-libraries stress-http |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-libraries stress-http |
Azure Pipelines successfully started running 1 pipeline(s). |
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.
Should we also use debug build of msquic as it has more asserts and sanity checks?
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Dockerfile
Outdated
Show resolved
Hide resolved
/azp run runtime-libraries stress-http |
Azure Pipelines successfully started running 1 pipeline(s). |
mkdir build && \ | ||
cmake -B build -DCMAKE_BUILD_TYPE=Release -DQUIC_ENABLE_LOGGING=false -DQUIC_USE_SYSTEM_LIBCRYPTO=true -DQUIC_BUILD_TOOLS=off -DQUIC_BUILD_TEST=off -DQUIC_BUILD_PERF=off -DQUIC_TLS=openssl3 && \ | ||
cmake -B build -DCMAKE_BUILD_TYPE=Debug -DQUIC_ENABLE_LOGGING=false -DQUIC_USE_SYSTEM_LIBCRYPTO=true -DQUIC_BUILD_TOOLS=off -DQUIC_BUILD_TEST=off -DQUIC_BUILD_PERF=off -DQUIC_TLS=openssl3 -DQUIC_ENABLE_SANITIZERS=on && \ |
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.
Should we also use debug build of msquic as it has more asserts and sanity checks?
Doesn't this change the behavior way too much? Can we compare the total number of stress RPS main vs PR in a stable environment to get a rough feeling about the difference and see how important it is to have multi-config runs set up?
If we think that running msquic in debug is justified because of additional checks, the same reasoning might also justify running stress against debug builds of libraries code.
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 would think that what perf tests would be for. In my mind the stress is just to shake out the tree. I'm certainly fine if we don't do it right now.
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.
running stress against debug builds of libraries code.
That won't fly until #93713 is fixed.
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 modulo nits.
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Dockerfile
Outdated
Show resolved
Hide resolved
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Dockerfile
Outdated
Show resolved
Hide resolved
mkdir build && \ | ||
cmake -B build -DCMAKE_BUILD_TYPE=Release -DQUIC_ENABLE_LOGGING=false -DQUIC_USE_SYSTEM_LIBCRYPTO=true -DQUIC_BUILD_TOOLS=off -DQUIC_BUILD_TEST=off -DQUIC_BUILD_PERF=off -DQUIC_TLS=openssl3 && \ | ||
cmake -B build -DCMAKE_BUILD_TYPE=Debug -DQUIC_ENABLE_LOGGING=false -DQUIC_USE_SYSTEM_LIBCRYPTO=true -DQUIC_BUILD_TOOLS=off -DQUIC_BUILD_TEST=off -DQUIC_BUILD_PERF=off -DQUIC_TLS=openssl3 -DQUIC_ENABLE_SANITIZERS=on && \ |
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.
running stress against debug builds of libraries code.
That won't fly until #93713 is fixed.
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Dockerfile
Outdated
Show resolved
Hide resolved
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Dockerfile
Outdated
Show resolved
Hide resolved
Co-authored-by: Marie Píchová <[email protected]>
/azp run runtime-libraries stress-http |
Azure Pipelines successfully started running 1 pipeline(s). |
http stress builds and is running. |
This PR turns on MsQuic address sanitization on Linux Http3 stress runs.