Skip to content

[release/8.0] Backport improvements to Http and Ssl stress tests - #122141

Merged
MihaZupan merged 8 commits into
release/8.0-stagingfrom
mihazupan/test/net8-stress
Dec 9, 2025
Merged

[release/8.0] Backport improvements to Http and Ssl stress tests#122141
MihaZupan merged 8 commits into
release/8.0-stagingfrom
mihazupan/test/net8-stress

Conversation

@MihaZupan

@MihaZupanMihaZupan commented Dec 3, 2025

Copy link
Copy Markdown
Member

Closes#122267

Customer Impact

  • Found internally

Our HTTP and SSL stress tests are experiencing intermittent build failures.
This change backports stress infra & testing improvements we've made since the 8.0 release, which also resolves the build failures.

Regression

  • No

Infra update.

Testing

CI stress runs.

Risk

Low. Test only change.

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @dotnet/ncl
See info in area-owners.md if you want to be subscribed.

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-ssl

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@SamMonoRT

Copy link
Copy Markdown
Member

@MihaZupan - the code complete for January servicing for 8.0.x and 9.0.x is December 5th in case you were planning to get this in for Jan.

@ManickaPManickaP left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

Comment threadeng/docker/libraries-sdk.linux.Dockerfile
@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan
MihaZupan marked this pull request as ready for review December 8, 2025 17:01
CopilotAI review requested due to automatic review settings December 8, 2025 17:01

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR backports stress test infrastructure improvements from the main branch to release/8.0, updating both HttpStress and SslStress projects to use a common, shared infrastructure. The key change specific to 8.0 is that TrackUnobservedExceptions is disabled by default, as noted in the PR description, since many product fixes have been made since 8.0 that would make this feature very noisy in the release branch.

Key Changes

  • Consolidates duplicate stress test infrastructure code into a common location (src/libraries/Common/tests/System/Net/StressTests/)
  • Updates Docker configurations to use correct SDK versions (8.0 instead of 6.0/7.0)
  • Standardizes environment variable names (STRESS_ARGS instead of HTTPSTRESS_ARGS/SSLSTRESS_ARGS)
  • Adds new entrypoint scripts for improved dump collection and error handling
  • Upgrades System.CommandLine package from experimental version to beta5
  • Adds connection initialization logic to SslStress client to handle container startup race conditions

Reviewed changes

Copilot reviewed 41 out of 41 changed files in this pull request and generated 8 comments.

Show a summary per file
FileDescription
src/libraries/System.Net.Security/tests/StressTests/SslStress/windows.DockerfileUpdates SDK base image to 8.0, adds NetCoreAppCurrentVersion parameter, standardizes environment variables
src/libraries/System.Net.Security/tests/StressTests/SslStress/run-docker-compose.shRefactored to delegate to common infrastructure script
src/libraries/System.Net.Security/tests/StressTests/SslStress/run-docker-compose.ps1Refactored to delegate to common infrastructure script
src/libraries/System.Net.Security/tests/StressTests/SslStress/entrypoint.shNew script for container entry with dump collection support
src/libraries/System.Net.Security/tests/StressTests/SslStress/entrypoint.ps1New PowerShell script for Windows container entry with dump collection
src/libraries/System.Net.Security/tests/StressTests/SslStress/docker-compose.ymlUpdates volume mounts and environment variables for standardization
src/libraries/System.Net.Security/tests/StressTests/SslStress/build-local.shRefactored to delegate to common infrastructure script
src/libraries/System.Net.Security/tests/StressTests/SslStress/StressOperations.csAdds InitializeAsync method for connection retry logic, fixes whitespace formatting
src/libraries/System.Net.Security/tests/StressTests/SslStress/SslStress.csprojAdds custom NuGet feed, upgrades System.CommandLine package
src/libraries/System.Net.Security/tests/StressTests/SslStress/SslClientBase.csRemoves unused random parameter, fixes whitespace formatting
src/libraries/System.Net.Security/tests/StressTests/SslStress/Program.csUpdates to new System.CommandLine API, improves command-line parsing
src/libraries/System.Net.Security/tests/StressTests/SslStress/DockerfileUpdates SDK base image, adds NetCoreAppCurrentVersion parameter, uses entrypoint script
src/libraries/System.Net.Security/tests/StressTests/SslStress/Directory.Build.targetsUses variable for NETCoreAppMaximumVersion instead of hardcoded value
src/libraries/System.Net.Security/tests/StressTests/SslStress/Directory.Build.propsImports Versions.props, dynamically computes version properties, renames OutputRID to TargetRid
src/libraries/System.Net.Security/tests/StressTests/SslStress/Build-Local.ps1Refactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/windows.DockerfileUpdates SDK base image to 8.0, moves dump configuration to entrypoint
src/libraries/System.Net.Http/tests/StressTests/HttpStress/run-docker-compose.shRefactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/run-docker-compose.ps1Refactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/entrypoint.shNew script for container entry with dump collection and ulimit configuration
src/libraries/System.Net.Http/tests/StressTests/HttpStress/entrypoint.ps1New PowerShell script for Windows container entry with dump collection
src/libraries/System.Net.Http/tests/StressTests/HttpStress/docker-compose.ymlConsolidates volume mounts, standardizes environment variables
src/libraries/System.Net.Http/tests/StressTests/HttpStress/build-local.shRefactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/build-local.ps1Refactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/StressServer.csUpdates documentation URL from docs.microsoft.com to learn.microsoft.com
src/libraries/System.Net.Http/tests/StressTests/HttpStress/StressClient.csEnables multiple HTTP/2 connections
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Program.csUpdates to new System.CommandLine API, adds unobserved exception tracking (disabled by default for 8.0), fixes formatting
src/libraries/System.Net.Http/tests/StressTests/HttpStress/HttpStress.csprojAdds custom NuGet feed, upgrades System.CommandLine package
src/libraries/System.Net.Http/tests/StressTests/HttpStress/DockerfileUpdates SDK base image, enables ASAN for msquic, adds NetCoreAppCurrentVersion parameter
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Directory.Build.targetsUses variable for NETCoreAppMaximumVersion instead of hardcoded value
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Directory.Build.propsImports Versions.props, dynamically computes version properties, renames OutputRID to TargetRid
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Configuration.csAdds TrackUnobservedExceptions property
src/libraries/Common/tests/System/Net/StressTests/run-docker-compose.shNew common script implementing docker-compose run logic for stress tests
src/libraries/Common/tests/System/Net/StressTests/run-docker-compose.ps1New common PowerShell script implementing docker-compose run logic
src/libraries/Common/tests/System/Net/StressTests/build-local.shNew common script implementing local build logic for stress tests
src/libraries/Common/tests/System/Net/StressTests/build-local.ps1New common PowerShell script implementing local build logic
eng/pipelines/libraries/stress/ssl.ymlAdds release/*.0 branch trigger, updates dump share handling, removes Windows workarounds
eng/pipelines/libraries/stress/http.ymlAdds release/*.0 branch trigger, consolidates dump share handling, removes Windows workarounds
eng/docker/libraries-sdk.windows.DockerfileUpdates to 8.0 SDK, uses new dotnet-install URL, removes old ASP.NET versions
eng/docker/libraries-sdk.linux.DockerfileUpdates to CentOS Stream 9, uses new dotnet-install URL, removes existing SDK
eng/docker/build-docker-sdk.shAdds dynamic version detection from Versions.props, fixes comparison operator
eng/docker/build-docker-sdk.ps1Adds dynamic version detection from Versions.props, adds VERSION build arg

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan
MihaZupanforce-pushed the mihazupan/test/net8-stress branch from 185106d to 211064eCompareDecember 9, 2025 13:42
@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan
MihaZupanforce-pushed the mihazupan/test/net8-stress branch from 211064e to f4af60aCompareDecember 9, 2025 15:30
@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/ba-g All failures are "The macOS-13 based runner images are now retired."

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

This is an infra-only change for HTTP and SSL stress tests. Tell mode.

@MihaZupanMihaZupan added the Servicing-approved Approved for servicing release label Dec 9, 2025
@MihaZupan
MihaZupan merged commit ff97795 into release/8.0-stagingDec 9, 2025
144 of 177 checks passed
@MihaZupan
MihaZupan deleted the mihazupan/test/net8-stress branch December 18, 2025 16:48
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Jan 18, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-System.NetServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@MihaZupan@SamMonoRT@ManickaP
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
[release/8.0] Backport improvements to Http and Ssl stress tests by MihaZupan · Pull Request #122141 · dotnet/runtime · GitHub
Skip to content

[release/8.0] Backport improvements to Http and Ssl stress tests - #122141

Merged
MihaZupan merged 8 commits into
release/8.0-stagingfrom
mihazupan/test/net8-stress
Dec 9, 2025
Merged

[release/8.0] Backport improvements to Http and Ssl stress tests#122141
MihaZupan merged 8 commits into
release/8.0-stagingfrom
mihazupan/test/net8-stress

Conversation

@MihaZupan

@MihaZupanMihaZupan commented Dec 3, 2025

Copy link
Copy Markdown
Member

Closes#122267

Customer Impact

  • Found internally

Our HTTP and SSL stress tests are experiencing intermittent build failures.
This change backports stress infra & testing improvements we've made since the 8.0 release, which also resolves the build failures.

Regression

  • No

Infra update.

Testing

CI stress runs.

Risk

Low. Test only change.

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @dotnet/ncl
See info in area-owners.md if you want to be subscribed.

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-ssl

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@SamMonoRT

Copy link
Copy Markdown
Member

@MihaZupan - the code complete for January servicing for 8.0.x and 9.0.x is December 5th in case you were planning to get this in for Jan.

@ManickaPManickaP left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

Comment threadeng/docker/libraries-sdk.linux.Dockerfile
@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan
MihaZupan marked this pull request as ready for review December 8, 2025 17:01
CopilotAI review requested due to automatic review settings December 8, 2025 17:01

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR backports stress test infrastructure improvements from the main branch to release/8.0, updating both HttpStress and SslStress projects to use a common, shared infrastructure. The key change specific to 8.0 is that TrackUnobservedExceptions is disabled by default, as noted in the PR description, since many product fixes have been made since 8.0 that would make this feature very noisy in the release branch.

Key Changes

  • Consolidates duplicate stress test infrastructure code into a common location (src/libraries/Common/tests/System/Net/StressTests/)
  • Updates Docker configurations to use correct SDK versions (8.0 instead of 6.0/7.0)
  • Standardizes environment variable names (STRESS_ARGS instead of HTTPSTRESS_ARGS/SSLSTRESS_ARGS)
  • Adds new entrypoint scripts for improved dump collection and error handling
  • Upgrades System.CommandLine package from experimental version to beta5
  • Adds connection initialization logic to SslStress client to handle container startup race conditions

Reviewed changes

Copilot reviewed 41 out of 41 changed files in this pull request and generated 8 comments.

Show a summary per file
FileDescription
src/libraries/System.Net.Security/tests/StressTests/SslStress/windows.DockerfileUpdates SDK base image to 8.0, adds NetCoreAppCurrentVersion parameter, standardizes environment variables
src/libraries/System.Net.Security/tests/StressTests/SslStress/run-docker-compose.shRefactored to delegate to common infrastructure script
src/libraries/System.Net.Security/tests/StressTests/SslStress/run-docker-compose.ps1Refactored to delegate to common infrastructure script
src/libraries/System.Net.Security/tests/StressTests/SslStress/entrypoint.shNew script for container entry with dump collection support
src/libraries/System.Net.Security/tests/StressTests/SslStress/entrypoint.ps1New PowerShell script for Windows container entry with dump collection
src/libraries/System.Net.Security/tests/StressTests/SslStress/docker-compose.ymlUpdates volume mounts and environment variables for standardization
src/libraries/System.Net.Security/tests/StressTests/SslStress/build-local.shRefactored to delegate to common infrastructure script
src/libraries/System.Net.Security/tests/StressTests/SslStress/StressOperations.csAdds InitializeAsync method for connection retry logic, fixes whitespace formatting
src/libraries/System.Net.Security/tests/StressTests/SslStress/SslStress.csprojAdds custom NuGet feed, upgrades System.CommandLine package
src/libraries/System.Net.Security/tests/StressTests/SslStress/SslClientBase.csRemoves unused random parameter, fixes whitespace formatting
src/libraries/System.Net.Security/tests/StressTests/SslStress/Program.csUpdates to new System.CommandLine API, improves command-line parsing
src/libraries/System.Net.Security/tests/StressTests/SslStress/DockerfileUpdates SDK base image, adds NetCoreAppCurrentVersion parameter, uses entrypoint script
src/libraries/System.Net.Security/tests/StressTests/SslStress/Directory.Build.targetsUses variable for NETCoreAppMaximumVersion instead of hardcoded value
src/libraries/System.Net.Security/tests/StressTests/SslStress/Directory.Build.propsImports Versions.props, dynamically computes version properties, renames OutputRID to TargetRid
src/libraries/System.Net.Security/tests/StressTests/SslStress/Build-Local.ps1Refactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/windows.DockerfileUpdates SDK base image to 8.0, moves dump configuration to entrypoint
src/libraries/System.Net.Http/tests/StressTests/HttpStress/run-docker-compose.shRefactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/run-docker-compose.ps1Refactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/entrypoint.shNew script for container entry with dump collection and ulimit configuration
src/libraries/System.Net.Http/tests/StressTests/HttpStress/entrypoint.ps1New PowerShell script for Windows container entry with dump collection
src/libraries/System.Net.Http/tests/StressTests/HttpStress/docker-compose.ymlConsolidates volume mounts, standardizes environment variables
src/libraries/System.Net.Http/tests/StressTests/HttpStress/build-local.shRefactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/build-local.ps1Refactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/StressServer.csUpdates documentation URL from docs.microsoft.com to learn.microsoft.com
src/libraries/System.Net.Http/tests/StressTests/HttpStress/StressClient.csEnables multiple HTTP/2 connections
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Program.csUpdates to new System.CommandLine API, adds unobserved exception tracking (disabled by default for 8.0), fixes formatting
src/libraries/System.Net.Http/tests/StressTests/HttpStress/HttpStress.csprojAdds custom NuGet feed, upgrades System.CommandLine package
src/libraries/System.Net.Http/tests/StressTests/HttpStress/DockerfileUpdates SDK base image, enables ASAN for msquic, adds NetCoreAppCurrentVersion parameter
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Directory.Build.targetsUses variable for NETCoreAppMaximumVersion instead of hardcoded value
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Directory.Build.propsImports Versions.props, dynamically computes version properties, renames OutputRID to TargetRid
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Configuration.csAdds TrackUnobservedExceptions property
src/libraries/Common/tests/System/Net/StressTests/run-docker-compose.shNew common script implementing docker-compose run logic for stress tests
src/libraries/Common/tests/System/Net/StressTests/run-docker-compose.ps1New common PowerShell script implementing docker-compose run logic
src/libraries/Common/tests/System/Net/StressTests/build-local.shNew common script implementing local build logic for stress tests
src/libraries/Common/tests/System/Net/StressTests/build-local.ps1New common PowerShell script implementing local build logic
eng/pipelines/libraries/stress/ssl.ymlAdds release/*.0 branch trigger, updates dump share handling, removes Windows workarounds
eng/pipelines/libraries/stress/http.ymlAdds release/*.0 branch trigger, consolidates dump share handling, removes Windows workarounds
eng/docker/libraries-sdk.windows.DockerfileUpdates to 8.0 SDK, uses new dotnet-install URL, removes old ASP.NET versions
eng/docker/libraries-sdk.linux.DockerfileUpdates to CentOS Stream 9, uses new dotnet-install URL, removes existing SDK
eng/docker/build-docker-sdk.shAdds dynamic version detection from Versions.props, fixes comparison operator
eng/docker/build-docker-sdk.ps1Adds dynamic version detection from Versions.props, adds VERSION build arg

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan
MihaZupanforce-pushed the mihazupan/test/net8-stress branch from 185106d to 211064eCompareDecember 9, 2025 13:42
@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan
MihaZupanforce-pushed the mihazupan/test/net8-stress branch from 211064e to f4af60aCompareDecember 9, 2025 15:30
@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/ba-g All failures are "The macOS-13 based runner images are now retired."

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

This is an infra-only change for HTTP and SSL stress tests. Tell mode.

@MihaZupanMihaZupan added the Servicing-approved Approved for servicing release label Dec 9, 2025
@MihaZupan
MihaZupan merged commit ff97795 into release/8.0-stagingDec 9, 2025
144 of 177 checks passed
@MihaZupan
MihaZupan deleted the mihazupan/test/net8-stress branch December 18, 2025 16:48
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Jan 18, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-System.NetServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@MihaZupan@SamMonoRT@ManickaP
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [release/8.0] Backport improvements to Http and Ssl stress tests by MihaZupan · Pull Request #122141 · dotnet/runtime · GitHub
Skip to content

[release/8.0] Backport improvements to Http and Ssl stress tests - #122141

Merged
MihaZupan merged 8 commits into
release/8.0-stagingfrom
mihazupan/test/net8-stress
Dec 9, 2025
Merged

[release/8.0] Backport improvements to Http and Ssl stress tests#122141
MihaZupan merged 8 commits into
release/8.0-stagingfrom
mihazupan/test/net8-stress

Conversation

@MihaZupan

@MihaZupanMihaZupan commented Dec 3, 2025

Copy link
Copy Markdown
Member

Closes#122267

Customer Impact

  • Found internally

Our HTTP and SSL stress tests are experiencing intermittent build failures.
This change backports stress infra & testing improvements we've made since the 8.0 release, which also resolves the build failures.

Regression

  • No

Infra update.

Testing

CI stress runs.

Risk

Low. Test only change.

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @dotnet/ncl
See info in area-owners.md if you want to be subscribed.

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-ssl

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@SamMonoRT

Copy link
Copy Markdown
Member

@MihaZupan - the code complete for January servicing for 8.0.x and 9.0.x is December 5th in case you were planning to get this in for Jan.

@ManickaPManickaP left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

Comment threadeng/docker/libraries-sdk.linux.Dockerfile
@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan
MihaZupan marked this pull request as ready for review December 8, 2025 17:01
CopilotAI review requested due to automatic review settings December 8, 2025 17:01

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR backports stress test infrastructure improvements from the main branch to release/8.0, updating both HttpStress and SslStress projects to use a common, shared infrastructure. The key change specific to 8.0 is that TrackUnobservedExceptions is disabled by default, as noted in the PR description, since many product fixes have been made since 8.0 that would make this feature very noisy in the release branch.

Key Changes

  • Consolidates duplicate stress test infrastructure code into a common location (src/libraries/Common/tests/System/Net/StressTests/)
  • Updates Docker configurations to use correct SDK versions (8.0 instead of 6.0/7.0)
  • Standardizes environment variable names (STRESS_ARGS instead of HTTPSTRESS_ARGS/SSLSTRESS_ARGS)
  • Adds new entrypoint scripts for improved dump collection and error handling
  • Upgrades System.CommandLine package from experimental version to beta5
  • Adds connection initialization logic to SslStress client to handle container startup race conditions

Reviewed changes

Copilot reviewed 41 out of 41 changed files in this pull request and generated 8 comments.

Show a summary per file
FileDescription
src/libraries/System.Net.Security/tests/StressTests/SslStress/windows.DockerfileUpdates SDK base image to 8.0, adds NetCoreAppCurrentVersion parameter, standardizes environment variables
src/libraries/System.Net.Security/tests/StressTests/SslStress/run-docker-compose.shRefactored to delegate to common infrastructure script
src/libraries/System.Net.Security/tests/StressTests/SslStress/run-docker-compose.ps1Refactored to delegate to common infrastructure script
src/libraries/System.Net.Security/tests/StressTests/SslStress/entrypoint.shNew script for container entry with dump collection support
src/libraries/System.Net.Security/tests/StressTests/SslStress/entrypoint.ps1New PowerShell script for Windows container entry with dump collection
src/libraries/System.Net.Security/tests/StressTests/SslStress/docker-compose.ymlUpdates volume mounts and environment variables for standardization
src/libraries/System.Net.Security/tests/StressTests/SslStress/build-local.shRefactored to delegate to common infrastructure script
src/libraries/System.Net.Security/tests/StressTests/SslStress/StressOperations.csAdds InitializeAsync method for connection retry logic, fixes whitespace formatting
src/libraries/System.Net.Security/tests/StressTests/SslStress/SslStress.csprojAdds custom NuGet feed, upgrades System.CommandLine package
src/libraries/System.Net.Security/tests/StressTests/SslStress/SslClientBase.csRemoves unused random parameter, fixes whitespace formatting
src/libraries/System.Net.Security/tests/StressTests/SslStress/Program.csUpdates to new System.CommandLine API, improves command-line parsing
src/libraries/System.Net.Security/tests/StressTests/SslStress/DockerfileUpdates SDK base image, adds NetCoreAppCurrentVersion parameter, uses entrypoint script
src/libraries/System.Net.Security/tests/StressTests/SslStress/Directory.Build.targetsUses variable for NETCoreAppMaximumVersion instead of hardcoded value
src/libraries/System.Net.Security/tests/StressTests/SslStress/Directory.Build.propsImports Versions.props, dynamically computes version properties, renames OutputRID to TargetRid
src/libraries/System.Net.Security/tests/StressTests/SslStress/Build-Local.ps1Refactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/windows.DockerfileUpdates SDK base image to 8.0, moves dump configuration to entrypoint
src/libraries/System.Net.Http/tests/StressTests/HttpStress/run-docker-compose.shRefactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/run-docker-compose.ps1Refactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/entrypoint.shNew script for container entry with dump collection and ulimit configuration
src/libraries/System.Net.Http/tests/StressTests/HttpStress/entrypoint.ps1New PowerShell script for Windows container entry with dump collection
src/libraries/System.Net.Http/tests/StressTests/HttpStress/docker-compose.ymlConsolidates volume mounts, standardizes environment variables
src/libraries/System.Net.Http/tests/StressTests/HttpStress/build-local.shRefactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/build-local.ps1Refactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/StressServer.csUpdates documentation URL from docs.microsoft.com to learn.microsoft.com
src/libraries/System.Net.Http/tests/StressTests/HttpStress/StressClient.csEnables multiple HTTP/2 connections
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Program.csUpdates to new System.CommandLine API, adds unobserved exception tracking (disabled by default for 8.0), fixes formatting
src/libraries/System.Net.Http/tests/StressTests/HttpStress/HttpStress.csprojAdds custom NuGet feed, upgrades System.CommandLine package
src/libraries/System.Net.Http/tests/StressTests/HttpStress/DockerfileUpdates SDK base image, enables ASAN for msquic, adds NetCoreAppCurrentVersion parameter
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Directory.Build.targetsUses variable for NETCoreAppMaximumVersion instead of hardcoded value
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Directory.Build.propsImports Versions.props, dynamically computes version properties, renames OutputRID to TargetRid
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Configuration.csAdds TrackUnobservedExceptions property
src/libraries/Common/tests/System/Net/StressTests/run-docker-compose.shNew common script implementing docker-compose run logic for stress tests
src/libraries/Common/tests/System/Net/StressTests/run-docker-compose.ps1New common PowerShell script implementing docker-compose run logic
src/libraries/Common/tests/System/Net/StressTests/build-local.shNew common script implementing local build logic for stress tests
src/libraries/Common/tests/System/Net/StressTests/build-local.ps1New common PowerShell script implementing local build logic
eng/pipelines/libraries/stress/ssl.ymlAdds release/*.0 branch trigger, updates dump share handling, removes Windows workarounds
eng/pipelines/libraries/stress/http.ymlAdds release/*.0 branch trigger, consolidates dump share handling, removes Windows workarounds
eng/docker/libraries-sdk.windows.DockerfileUpdates to 8.0 SDK, uses new dotnet-install URL, removes old ASP.NET versions
eng/docker/libraries-sdk.linux.DockerfileUpdates to CentOS Stream 9, uses new dotnet-install URL, removes existing SDK
eng/docker/build-docker-sdk.shAdds dynamic version detection from Versions.props, fixes comparison operator
eng/docker/build-docker-sdk.ps1Adds dynamic version detection from Versions.props, adds VERSION build arg

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan
MihaZupanforce-pushed the mihazupan/test/net8-stress branch from 185106d to 211064eCompareDecember 9, 2025 13:42
@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan
MihaZupanforce-pushed the mihazupan/test/net8-stress branch from 211064e to f4af60aCompareDecember 9, 2025 15:30
@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/ba-g All failures are "The macOS-13 based runner images are now retired."

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

This is an infra-only change for HTTP and SSL stress tests. Tell mode.

@MihaZupanMihaZupan added the Servicing-approved Approved for servicing release label Dec 9, 2025
@MihaZupan
MihaZupan merged commit ff97795 into release/8.0-stagingDec 9, 2025
144 of 177 checks passed
@MihaZupan
MihaZupan deleted the mihazupan/test/net8-stress branch December 18, 2025 16:48
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Jan 18, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-System.NetServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@MihaZupan@SamMonoRT@ManickaP
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [release/8.0] Backport improvements to Http and Ssl stress tests by MihaZupan · Pull Request #122141 · dotnet/runtime · GitHub
Skip to content

[release/8.0] Backport improvements to Http and Ssl stress tests - #122141

Merged
MihaZupan merged 8 commits into
release/8.0-stagingfrom
mihazupan/test/net8-stress
Dec 9, 2025
Merged

[release/8.0] Backport improvements to Http and Ssl stress tests#122141
MihaZupan merged 8 commits into
release/8.0-stagingfrom
mihazupan/test/net8-stress

Conversation

@MihaZupan

@MihaZupanMihaZupan commented Dec 3, 2025

Copy link
Copy Markdown
Member

Closes#122267

Customer Impact

  • Found internally

Our HTTP and SSL stress tests are experiencing intermittent build failures.
This change backports stress infra & testing improvements we've made since the 8.0 release, which also resolves the build failures.

Regression

  • No

Infra update.

Testing

CI stress runs.

Risk

Low. Test only change.

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @dotnet/ncl
See info in area-owners.md if you want to be subscribed.

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-ssl

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@SamMonoRT

Copy link
Copy Markdown
Member

@MihaZupan - the code complete for January servicing for 8.0.x and 9.0.x is December 5th in case you were planning to get this in for Jan.

@ManickaPManickaP left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

Comment threadeng/docker/libraries-sdk.linux.Dockerfile
@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan
MihaZupan marked this pull request as ready for review December 8, 2025 17:01
CopilotAI review requested due to automatic review settings December 8, 2025 17:01

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR backports stress test infrastructure improvements from the main branch to release/8.0, updating both HttpStress and SslStress projects to use a common, shared infrastructure. The key change specific to 8.0 is that TrackUnobservedExceptions is disabled by default, as noted in the PR description, since many product fixes have been made since 8.0 that would make this feature very noisy in the release branch.

Key Changes

  • Consolidates duplicate stress test infrastructure code into a common location (src/libraries/Common/tests/System/Net/StressTests/)
  • Updates Docker configurations to use correct SDK versions (8.0 instead of 6.0/7.0)
  • Standardizes environment variable names (STRESS_ARGS instead of HTTPSTRESS_ARGS/SSLSTRESS_ARGS)
  • Adds new entrypoint scripts for improved dump collection and error handling
  • Upgrades System.CommandLine package from experimental version to beta5
  • Adds connection initialization logic to SslStress client to handle container startup race conditions

Reviewed changes

Copilot reviewed 41 out of 41 changed files in this pull request and generated 8 comments.

Show a summary per file
FileDescription
src/libraries/System.Net.Security/tests/StressTests/SslStress/windows.DockerfileUpdates SDK base image to 8.0, adds NetCoreAppCurrentVersion parameter, standardizes environment variables
src/libraries/System.Net.Security/tests/StressTests/SslStress/run-docker-compose.shRefactored to delegate to common infrastructure script
src/libraries/System.Net.Security/tests/StressTests/SslStress/run-docker-compose.ps1Refactored to delegate to common infrastructure script
src/libraries/System.Net.Security/tests/StressTests/SslStress/entrypoint.shNew script for container entry with dump collection support
src/libraries/System.Net.Security/tests/StressTests/SslStress/entrypoint.ps1New PowerShell script for Windows container entry with dump collection
src/libraries/System.Net.Security/tests/StressTests/SslStress/docker-compose.ymlUpdates volume mounts and environment variables for standardization
src/libraries/System.Net.Security/tests/StressTests/SslStress/build-local.shRefactored to delegate to common infrastructure script
src/libraries/System.Net.Security/tests/StressTests/SslStress/StressOperations.csAdds InitializeAsync method for connection retry logic, fixes whitespace formatting
src/libraries/System.Net.Security/tests/StressTests/SslStress/SslStress.csprojAdds custom NuGet feed, upgrades System.CommandLine package
src/libraries/System.Net.Security/tests/StressTests/SslStress/SslClientBase.csRemoves unused random parameter, fixes whitespace formatting
src/libraries/System.Net.Security/tests/StressTests/SslStress/Program.csUpdates to new System.CommandLine API, improves command-line parsing
src/libraries/System.Net.Security/tests/StressTests/SslStress/DockerfileUpdates SDK base image, adds NetCoreAppCurrentVersion parameter, uses entrypoint script
src/libraries/System.Net.Security/tests/StressTests/SslStress/Directory.Build.targetsUses variable for NETCoreAppMaximumVersion instead of hardcoded value
src/libraries/System.Net.Security/tests/StressTests/SslStress/Directory.Build.propsImports Versions.props, dynamically computes version properties, renames OutputRID to TargetRid
src/libraries/System.Net.Security/tests/StressTests/SslStress/Build-Local.ps1Refactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/windows.DockerfileUpdates SDK base image to 8.0, moves dump configuration to entrypoint
src/libraries/System.Net.Http/tests/StressTests/HttpStress/run-docker-compose.shRefactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/run-docker-compose.ps1Refactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/entrypoint.shNew script for container entry with dump collection and ulimit configuration
src/libraries/System.Net.Http/tests/StressTests/HttpStress/entrypoint.ps1New PowerShell script for Windows container entry with dump collection
src/libraries/System.Net.Http/tests/StressTests/HttpStress/docker-compose.ymlConsolidates volume mounts, standardizes environment variables
src/libraries/System.Net.Http/tests/StressTests/HttpStress/build-local.shRefactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/build-local.ps1Refactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/StressServer.csUpdates documentation URL from docs.microsoft.com to learn.microsoft.com
src/libraries/System.Net.Http/tests/StressTests/HttpStress/StressClient.csEnables multiple HTTP/2 connections
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Program.csUpdates to new System.CommandLine API, adds unobserved exception tracking (disabled by default for 8.0), fixes formatting
src/libraries/System.Net.Http/tests/StressTests/HttpStress/HttpStress.csprojAdds custom NuGet feed, upgrades System.CommandLine package
src/libraries/System.Net.Http/tests/StressTests/HttpStress/DockerfileUpdates SDK base image, enables ASAN for msquic, adds NetCoreAppCurrentVersion parameter
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Directory.Build.targetsUses variable for NETCoreAppMaximumVersion instead of hardcoded value
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Directory.Build.propsImports Versions.props, dynamically computes version properties, renames OutputRID to TargetRid
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Configuration.csAdds TrackUnobservedExceptions property
src/libraries/Common/tests/System/Net/StressTests/run-docker-compose.shNew common script implementing docker-compose run logic for stress tests
src/libraries/Common/tests/System/Net/StressTests/run-docker-compose.ps1New common PowerShell script implementing docker-compose run logic
src/libraries/Common/tests/System/Net/StressTests/build-local.shNew common script implementing local build logic for stress tests
src/libraries/Common/tests/System/Net/StressTests/build-local.ps1New common PowerShell script implementing local build logic
eng/pipelines/libraries/stress/ssl.ymlAdds release/*.0 branch trigger, updates dump share handling, removes Windows workarounds
eng/pipelines/libraries/stress/http.ymlAdds release/*.0 branch trigger, consolidates dump share handling, removes Windows workarounds
eng/docker/libraries-sdk.windows.DockerfileUpdates to 8.0 SDK, uses new dotnet-install URL, removes old ASP.NET versions
eng/docker/libraries-sdk.linux.DockerfileUpdates to CentOS Stream 9, uses new dotnet-install URL, removes existing SDK
eng/docker/build-docker-sdk.shAdds dynamic version detection from Versions.props, fixes comparison operator
eng/docker/build-docker-sdk.ps1Adds dynamic version detection from Versions.props, adds VERSION build arg

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan
MihaZupanforce-pushed the mihazupan/test/net8-stress branch from 185106d to 211064eCompareDecember 9, 2025 13:42
@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan
MihaZupanforce-pushed the mihazupan/test/net8-stress branch from 211064e to f4af60aCompareDecember 9, 2025 15:30
@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/ba-g All failures are "The macOS-13 based runner images are now retired."

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

This is an infra-only change for HTTP and SSL stress tests. Tell mode.

@MihaZupanMihaZupan added the Servicing-approved Approved for servicing release label Dec 9, 2025
@MihaZupan
MihaZupan merged commit ff97795 into release/8.0-stagingDec 9, 2025
144 of 177 checks passed
@MihaZupan
MihaZupan deleted the mihazupan/test/net8-stress branch December 18, 2025 16:48
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Jan 18, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-System.NetServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@MihaZupan@SamMonoRT@ManickaP
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' [release/8.0] Backport improvements to Http and Ssl stress tests by MihaZupan · Pull Request #122141 · dotnet/runtime · GitHub
Skip to content

[release/8.0] Backport improvements to Http and Ssl stress tests - #122141

Merged
MihaZupan merged 8 commits into
release/8.0-stagingfrom
mihazupan/test/net8-stress
Dec 9, 2025
Merged

[release/8.0] Backport improvements to Http and Ssl stress tests#122141
MihaZupan merged 8 commits into
release/8.0-stagingfrom
mihazupan/test/net8-stress

Conversation

@MihaZupan

@MihaZupanMihaZupan commented Dec 3, 2025

Copy link
Copy Markdown
Member

Closes#122267

Customer Impact

  • Found internally

Our HTTP and SSL stress tests are experiencing intermittent build failures.
This change backports stress infra & testing improvements we've made since the 8.0 release, which also resolves the build failures.

Regression

  • No

Infra update.

Testing

CI stress runs.

Risk

Low. Test only change.

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @dotnet/ncl
See info in area-owners.md if you want to be subscribed.

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-ssl

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@SamMonoRT

Copy link
Copy Markdown
Member

@MihaZupan - the code complete for January servicing for 8.0.x and 9.0.x is December 5th in case you were planning to get this in for Jan.

@ManickaPManickaP left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

Comment threadeng/docker/libraries-sdk.linux.Dockerfile
@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan
MihaZupan marked this pull request as ready for review December 8, 2025 17:01
CopilotAI review requested due to automatic review settings December 8, 2025 17:01

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR backports stress test infrastructure improvements from the main branch to release/8.0, updating both HttpStress and SslStress projects to use a common, shared infrastructure. The key change specific to 8.0 is that TrackUnobservedExceptions is disabled by default, as noted in the PR description, since many product fixes have been made since 8.0 that would make this feature very noisy in the release branch.

Key Changes

  • Consolidates duplicate stress test infrastructure code into a common location (src/libraries/Common/tests/System/Net/StressTests/)
  • Updates Docker configurations to use correct SDK versions (8.0 instead of 6.0/7.0)
  • Standardizes environment variable names (STRESS_ARGS instead of HTTPSTRESS_ARGS/SSLSTRESS_ARGS)
  • Adds new entrypoint scripts for improved dump collection and error handling
  • Upgrades System.CommandLine package from experimental version to beta5
  • Adds connection initialization logic to SslStress client to handle container startup race conditions

Reviewed changes

Copilot reviewed 41 out of 41 changed files in this pull request and generated 8 comments.

Show a summary per file
FileDescription
src/libraries/System.Net.Security/tests/StressTests/SslStress/windows.DockerfileUpdates SDK base image to 8.0, adds NetCoreAppCurrentVersion parameter, standardizes environment variables
src/libraries/System.Net.Security/tests/StressTests/SslStress/run-docker-compose.shRefactored to delegate to common infrastructure script
src/libraries/System.Net.Security/tests/StressTests/SslStress/run-docker-compose.ps1Refactored to delegate to common infrastructure script
src/libraries/System.Net.Security/tests/StressTests/SslStress/entrypoint.shNew script for container entry with dump collection support
src/libraries/System.Net.Security/tests/StressTests/SslStress/entrypoint.ps1New PowerShell script for Windows container entry with dump collection
src/libraries/System.Net.Security/tests/StressTests/SslStress/docker-compose.ymlUpdates volume mounts and environment variables for standardization
src/libraries/System.Net.Security/tests/StressTests/SslStress/build-local.shRefactored to delegate to common infrastructure script
src/libraries/System.Net.Security/tests/StressTests/SslStress/StressOperations.csAdds InitializeAsync method for connection retry logic, fixes whitespace formatting
src/libraries/System.Net.Security/tests/StressTests/SslStress/SslStress.csprojAdds custom NuGet feed, upgrades System.CommandLine package
src/libraries/System.Net.Security/tests/StressTests/SslStress/SslClientBase.csRemoves unused random parameter, fixes whitespace formatting
src/libraries/System.Net.Security/tests/StressTests/SslStress/Program.csUpdates to new System.CommandLine API, improves command-line parsing
src/libraries/System.Net.Security/tests/StressTests/SslStress/DockerfileUpdates SDK base image, adds NetCoreAppCurrentVersion parameter, uses entrypoint script
src/libraries/System.Net.Security/tests/StressTests/SslStress/Directory.Build.targetsUses variable for NETCoreAppMaximumVersion instead of hardcoded value
src/libraries/System.Net.Security/tests/StressTests/SslStress/Directory.Build.propsImports Versions.props, dynamically computes version properties, renames OutputRID to TargetRid
src/libraries/System.Net.Security/tests/StressTests/SslStress/Build-Local.ps1Refactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/windows.DockerfileUpdates SDK base image to 8.0, moves dump configuration to entrypoint
src/libraries/System.Net.Http/tests/StressTests/HttpStress/run-docker-compose.shRefactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/run-docker-compose.ps1Refactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/entrypoint.shNew script for container entry with dump collection and ulimit configuration
src/libraries/System.Net.Http/tests/StressTests/HttpStress/entrypoint.ps1New PowerShell script for Windows container entry with dump collection
src/libraries/System.Net.Http/tests/StressTests/HttpStress/docker-compose.ymlConsolidates volume mounts, standardizes environment variables
src/libraries/System.Net.Http/tests/StressTests/HttpStress/build-local.shRefactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/build-local.ps1Refactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/StressServer.csUpdates documentation URL from docs.microsoft.com to learn.microsoft.com
src/libraries/System.Net.Http/tests/StressTests/HttpStress/StressClient.csEnables multiple HTTP/2 connections
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Program.csUpdates to new System.CommandLine API, adds unobserved exception tracking (disabled by default for 8.0), fixes formatting
src/libraries/System.Net.Http/tests/StressTests/HttpStress/HttpStress.csprojAdds custom NuGet feed, upgrades System.CommandLine package
src/libraries/System.Net.Http/tests/StressTests/HttpStress/DockerfileUpdates SDK base image, enables ASAN for msquic, adds NetCoreAppCurrentVersion parameter
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Directory.Build.targetsUses variable for NETCoreAppMaximumVersion instead of hardcoded value
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Directory.Build.propsImports Versions.props, dynamically computes version properties, renames OutputRID to TargetRid
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Configuration.csAdds TrackUnobservedExceptions property
src/libraries/Common/tests/System/Net/StressTests/run-docker-compose.shNew common script implementing docker-compose run logic for stress tests
src/libraries/Common/tests/System/Net/StressTests/run-docker-compose.ps1New common PowerShell script implementing docker-compose run logic
src/libraries/Common/tests/System/Net/StressTests/build-local.shNew common script implementing local build logic for stress tests
src/libraries/Common/tests/System/Net/StressTests/build-local.ps1New common PowerShell script implementing local build logic
eng/pipelines/libraries/stress/ssl.ymlAdds release/*.0 branch trigger, updates dump share handling, removes Windows workarounds
eng/pipelines/libraries/stress/http.ymlAdds release/*.0 branch trigger, consolidates dump share handling, removes Windows workarounds
eng/docker/libraries-sdk.windows.DockerfileUpdates to 8.0 SDK, uses new dotnet-install URL, removes old ASP.NET versions
eng/docker/libraries-sdk.linux.DockerfileUpdates to CentOS Stream 9, uses new dotnet-install URL, removes existing SDK
eng/docker/build-docker-sdk.shAdds dynamic version detection from Versions.props, fixes comparison operator
eng/docker/build-docker-sdk.ps1Adds dynamic version detection from Versions.props, adds VERSION build arg

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan
MihaZupanforce-pushed the mihazupan/test/net8-stress branch from 185106d to 211064eCompareDecember 9, 2025 13:42
@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan
MihaZupanforce-pushed the mihazupan/test/net8-stress branch from 211064e to f4af60aCompareDecember 9, 2025 15:30
@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/ba-g All failures are "The macOS-13 based runner images are now retired."

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

This is an infra-only change for HTTP and SSL stress tests. Tell mode.

@MihaZupanMihaZupan added the Servicing-approved Approved for servicing release label Dec 9, 2025
@MihaZupan
MihaZupan merged commit ff97795 into release/8.0-stagingDec 9, 2025
144 of 177 checks passed
@MihaZupan
MihaZupan deleted the mihazupan/test/net8-stress branch December 18, 2025 16:48
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Jan 18, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-System.NetServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@MihaZupan@SamMonoRT@ManickaP
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [release/8.0] Backport improvements to Http and Ssl stress tests by MihaZupan · Pull Request #122141 · dotnet/runtime · GitHub
Skip to content

[release/8.0] Backport improvements to Http and Ssl stress tests - #122141

Merged
MihaZupan merged 8 commits into
release/8.0-stagingfrom
mihazupan/test/net8-stress
Dec 9, 2025
Merged

[release/8.0] Backport improvements to Http and Ssl stress tests#122141
MihaZupan merged 8 commits into
release/8.0-stagingfrom
mihazupan/test/net8-stress

Conversation

@MihaZupan

@MihaZupanMihaZupan commented Dec 3, 2025

Copy link
Copy Markdown
Member

Closes#122267

Customer Impact

  • Found internally

Our HTTP and SSL stress tests are experiencing intermittent build failures.
This change backports stress infra & testing improvements we've made since the 8.0 release, which also resolves the build failures.

Regression

  • No

Infra update.

Testing

CI stress runs.

Risk

Low. Test only change.

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @dotnet/ncl
See info in area-owners.md if you want to be subscribed.

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-ssl

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@SamMonoRT

Copy link
Copy Markdown
Member

@MihaZupan - the code complete for January servicing for 8.0.x and 9.0.x is December 5th in case you were planning to get this in for Jan.

@ManickaPManickaP left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

Comment threadeng/docker/libraries-sdk.linux.Dockerfile
@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan
MihaZupan marked this pull request as ready for review December 8, 2025 17:01
CopilotAI review requested due to automatic review settings December 8, 2025 17:01

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR backports stress test infrastructure improvements from the main branch to release/8.0, updating both HttpStress and SslStress projects to use a common, shared infrastructure. The key change specific to 8.0 is that TrackUnobservedExceptions is disabled by default, as noted in the PR description, since many product fixes have been made since 8.0 that would make this feature very noisy in the release branch.

Key Changes

  • Consolidates duplicate stress test infrastructure code into a common location (src/libraries/Common/tests/System/Net/StressTests/)
  • Updates Docker configurations to use correct SDK versions (8.0 instead of 6.0/7.0)
  • Standardizes environment variable names (STRESS_ARGS instead of HTTPSTRESS_ARGS/SSLSTRESS_ARGS)
  • Adds new entrypoint scripts for improved dump collection and error handling
  • Upgrades System.CommandLine package from experimental version to beta5
  • Adds connection initialization logic to SslStress client to handle container startup race conditions

Reviewed changes

Copilot reviewed 41 out of 41 changed files in this pull request and generated 8 comments.

Show a summary per file
FileDescription
src/libraries/System.Net.Security/tests/StressTests/SslStress/windows.DockerfileUpdates SDK base image to 8.0, adds NetCoreAppCurrentVersion parameter, standardizes environment variables
src/libraries/System.Net.Security/tests/StressTests/SslStress/run-docker-compose.shRefactored to delegate to common infrastructure script
src/libraries/System.Net.Security/tests/StressTests/SslStress/run-docker-compose.ps1Refactored to delegate to common infrastructure script
src/libraries/System.Net.Security/tests/StressTests/SslStress/entrypoint.shNew script for container entry with dump collection support
src/libraries/System.Net.Security/tests/StressTests/SslStress/entrypoint.ps1New PowerShell script for Windows container entry with dump collection
src/libraries/System.Net.Security/tests/StressTests/SslStress/docker-compose.ymlUpdates volume mounts and environment variables for standardization
src/libraries/System.Net.Security/tests/StressTests/SslStress/build-local.shRefactored to delegate to common infrastructure script
src/libraries/System.Net.Security/tests/StressTests/SslStress/StressOperations.csAdds InitializeAsync method for connection retry logic, fixes whitespace formatting
src/libraries/System.Net.Security/tests/StressTests/SslStress/SslStress.csprojAdds custom NuGet feed, upgrades System.CommandLine package
src/libraries/System.Net.Security/tests/StressTests/SslStress/SslClientBase.csRemoves unused random parameter, fixes whitespace formatting
src/libraries/System.Net.Security/tests/StressTests/SslStress/Program.csUpdates to new System.CommandLine API, improves command-line parsing
src/libraries/System.Net.Security/tests/StressTests/SslStress/DockerfileUpdates SDK base image, adds NetCoreAppCurrentVersion parameter, uses entrypoint script
src/libraries/System.Net.Security/tests/StressTests/SslStress/Directory.Build.targetsUses variable for NETCoreAppMaximumVersion instead of hardcoded value
src/libraries/System.Net.Security/tests/StressTests/SslStress/Directory.Build.propsImports Versions.props, dynamically computes version properties, renames OutputRID to TargetRid
src/libraries/System.Net.Security/tests/StressTests/SslStress/Build-Local.ps1Refactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/windows.DockerfileUpdates SDK base image to 8.0, moves dump configuration to entrypoint
src/libraries/System.Net.Http/tests/StressTests/HttpStress/run-docker-compose.shRefactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/run-docker-compose.ps1Refactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/entrypoint.shNew script for container entry with dump collection and ulimit configuration
src/libraries/System.Net.Http/tests/StressTests/HttpStress/entrypoint.ps1New PowerShell script for Windows container entry with dump collection
src/libraries/System.Net.Http/tests/StressTests/HttpStress/docker-compose.ymlConsolidates volume mounts, standardizes environment variables
src/libraries/System.Net.Http/tests/StressTests/HttpStress/build-local.shRefactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/build-local.ps1Refactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/StressServer.csUpdates documentation URL from docs.microsoft.com to learn.microsoft.com
src/libraries/System.Net.Http/tests/StressTests/HttpStress/StressClient.csEnables multiple HTTP/2 connections
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Program.csUpdates to new System.CommandLine API, adds unobserved exception tracking (disabled by default for 8.0), fixes formatting
src/libraries/System.Net.Http/tests/StressTests/HttpStress/HttpStress.csprojAdds custom NuGet feed, upgrades System.CommandLine package
src/libraries/System.Net.Http/tests/StressTests/HttpStress/DockerfileUpdates SDK base image, enables ASAN for msquic, adds NetCoreAppCurrentVersion parameter
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Directory.Build.targetsUses variable for NETCoreAppMaximumVersion instead of hardcoded value
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Directory.Build.propsImports Versions.props, dynamically computes version properties, renames OutputRID to TargetRid
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Configuration.csAdds TrackUnobservedExceptions property
src/libraries/Common/tests/System/Net/StressTests/run-docker-compose.shNew common script implementing docker-compose run logic for stress tests
src/libraries/Common/tests/System/Net/StressTests/run-docker-compose.ps1New common PowerShell script implementing docker-compose run logic
src/libraries/Common/tests/System/Net/StressTests/build-local.shNew common script implementing local build logic for stress tests
src/libraries/Common/tests/System/Net/StressTests/build-local.ps1New common PowerShell script implementing local build logic
eng/pipelines/libraries/stress/ssl.ymlAdds release/*.0 branch trigger, updates dump share handling, removes Windows workarounds
eng/pipelines/libraries/stress/http.ymlAdds release/*.0 branch trigger, consolidates dump share handling, removes Windows workarounds
eng/docker/libraries-sdk.windows.DockerfileUpdates to 8.0 SDK, uses new dotnet-install URL, removes old ASP.NET versions
eng/docker/libraries-sdk.linux.DockerfileUpdates to CentOS Stream 9, uses new dotnet-install URL, removes existing SDK
eng/docker/build-docker-sdk.shAdds dynamic version detection from Versions.props, fixes comparison operator
eng/docker/build-docker-sdk.ps1Adds dynamic version detection from Versions.props, adds VERSION build arg

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan
MihaZupanforce-pushed the mihazupan/test/net8-stress branch from 185106d to 211064eCompareDecember 9, 2025 13:42
@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan
MihaZupanforce-pushed the mihazupan/test/net8-stress branch from 211064e to f4af60aCompareDecember 9, 2025 15:30
@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/ba-g All failures are "The macOS-13 based runner images are now retired."

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

This is an infra-only change for HTTP and SSL stress tests. Tell mode.

@MihaZupanMihaZupan added the Servicing-approved Approved for servicing release label Dec 9, 2025
@MihaZupan
MihaZupan merged commit ff97795 into release/8.0-stagingDec 9, 2025
144 of 177 checks passed
@MihaZupan
MihaZupan deleted the mihazupan/test/net8-stress branch December 18, 2025 16:48
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Jan 18, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-System.NetServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@MihaZupan@SamMonoRT@ManickaP
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); [release/8.0] Backport improvements to Http and Ssl stress tests by MihaZupan · Pull Request #122141 · dotnet/runtime · GitHub
Skip to content

[release/8.0] Backport improvements to Http and Ssl stress tests - #122141

Merged
MihaZupan merged 8 commits into
release/8.0-stagingfrom
mihazupan/test/net8-stress
Dec 9, 2025
Merged

[release/8.0] Backport improvements to Http and Ssl stress tests#122141
MihaZupan merged 8 commits into
release/8.0-stagingfrom
mihazupan/test/net8-stress

Conversation

@MihaZupan

@MihaZupanMihaZupan commented Dec 3, 2025

Copy link
Copy Markdown
Member

Closes#122267

Customer Impact

  • Found internally

Our HTTP and SSL stress tests are experiencing intermittent build failures.
This change backports stress infra & testing improvements we've made since the 8.0 release, which also resolves the build failures.

Regression

  • No

Infra update.

Testing

CI stress runs.

Risk

Low. Test only change.

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @dotnet/ncl
See info in area-owners.md if you want to be subscribed.

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-ssl

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@SamMonoRT

Copy link
Copy Markdown
Member

@MihaZupan - the code complete for January servicing for 8.0.x and 9.0.x is December 5th in case you were planning to get this in for Jan.

@ManickaPManickaP left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

Comment threadeng/docker/libraries-sdk.linux.Dockerfile
@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan
MihaZupan marked this pull request as ready for review December 8, 2025 17:01
CopilotAI review requested due to automatic review settings December 8, 2025 17:01

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR backports stress test infrastructure improvements from the main branch to release/8.0, updating both HttpStress and SslStress projects to use a common, shared infrastructure. The key change specific to 8.0 is that TrackUnobservedExceptions is disabled by default, as noted in the PR description, since many product fixes have been made since 8.0 that would make this feature very noisy in the release branch.

Key Changes

  • Consolidates duplicate stress test infrastructure code into a common location (src/libraries/Common/tests/System/Net/StressTests/)
  • Updates Docker configurations to use correct SDK versions (8.0 instead of 6.0/7.0)
  • Standardizes environment variable names (STRESS_ARGS instead of HTTPSTRESS_ARGS/SSLSTRESS_ARGS)
  • Adds new entrypoint scripts for improved dump collection and error handling
  • Upgrades System.CommandLine package from experimental version to beta5
  • Adds connection initialization logic to SslStress client to handle container startup race conditions

Reviewed changes

Copilot reviewed 41 out of 41 changed files in this pull request and generated 8 comments.

Show a summary per file
FileDescription
src/libraries/System.Net.Security/tests/StressTests/SslStress/windows.DockerfileUpdates SDK base image to 8.0, adds NetCoreAppCurrentVersion parameter, standardizes environment variables
src/libraries/System.Net.Security/tests/StressTests/SslStress/run-docker-compose.shRefactored to delegate to common infrastructure script
src/libraries/System.Net.Security/tests/StressTests/SslStress/run-docker-compose.ps1Refactored to delegate to common infrastructure script
src/libraries/System.Net.Security/tests/StressTests/SslStress/entrypoint.shNew script for container entry with dump collection support
src/libraries/System.Net.Security/tests/StressTests/SslStress/entrypoint.ps1New PowerShell script for Windows container entry with dump collection
src/libraries/System.Net.Security/tests/StressTests/SslStress/docker-compose.ymlUpdates volume mounts and environment variables for standardization
src/libraries/System.Net.Security/tests/StressTests/SslStress/build-local.shRefactored to delegate to common infrastructure script
src/libraries/System.Net.Security/tests/StressTests/SslStress/StressOperations.csAdds InitializeAsync method for connection retry logic, fixes whitespace formatting
src/libraries/System.Net.Security/tests/StressTests/SslStress/SslStress.csprojAdds custom NuGet feed, upgrades System.CommandLine package
src/libraries/System.Net.Security/tests/StressTests/SslStress/SslClientBase.csRemoves unused random parameter, fixes whitespace formatting
src/libraries/System.Net.Security/tests/StressTests/SslStress/Program.csUpdates to new System.CommandLine API, improves command-line parsing
src/libraries/System.Net.Security/tests/StressTests/SslStress/DockerfileUpdates SDK base image, adds NetCoreAppCurrentVersion parameter, uses entrypoint script
src/libraries/System.Net.Security/tests/StressTests/SslStress/Directory.Build.targetsUses variable for NETCoreAppMaximumVersion instead of hardcoded value
src/libraries/System.Net.Security/tests/StressTests/SslStress/Directory.Build.propsImports Versions.props, dynamically computes version properties, renames OutputRID to TargetRid
src/libraries/System.Net.Security/tests/StressTests/SslStress/Build-Local.ps1Refactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/windows.DockerfileUpdates SDK base image to 8.0, moves dump configuration to entrypoint
src/libraries/System.Net.Http/tests/StressTests/HttpStress/run-docker-compose.shRefactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/run-docker-compose.ps1Refactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/entrypoint.shNew script for container entry with dump collection and ulimit configuration
src/libraries/System.Net.Http/tests/StressTests/HttpStress/entrypoint.ps1New PowerShell script for Windows container entry with dump collection
src/libraries/System.Net.Http/tests/StressTests/HttpStress/docker-compose.ymlConsolidates volume mounts, standardizes environment variables
src/libraries/System.Net.Http/tests/StressTests/HttpStress/build-local.shRefactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/build-local.ps1Refactored to delegate to common infrastructure script
src/libraries/System.Net.Http/tests/StressTests/HttpStress/StressServer.csUpdates documentation URL from docs.microsoft.com to learn.microsoft.com
src/libraries/System.Net.Http/tests/StressTests/HttpStress/StressClient.csEnables multiple HTTP/2 connections
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Program.csUpdates to new System.CommandLine API, adds unobserved exception tracking (disabled by default for 8.0), fixes formatting
src/libraries/System.Net.Http/tests/StressTests/HttpStress/HttpStress.csprojAdds custom NuGet feed, upgrades System.CommandLine package
src/libraries/System.Net.Http/tests/StressTests/HttpStress/DockerfileUpdates SDK base image, enables ASAN for msquic, adds NetCoreAppCurrentVersion parameter
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Directory.Build.targetsUses variable for NETCoreAppMaximumVersion instead of hardcoded value
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Directory.Build.propsImports Versions.props, dynamically computes version properties, renames OutputRID to TargetRid
src/libraries/System.Net.Http/tests/StressTests/HttpStress/Configuration.csAdds TrackUnobservedExceptions property
src/libraries/Common/tests/System/Net/StressTests/run-docker-compose.shNew common script implementing docker-compose run logic for stress tests
src/libraries/Common/tests/System/Net/StressTests/run-docker-compose.ps1New common PowerShell script implementing docker-compose run logic
src/libraries/Common/tests/System/Net/StressTests/build-local.shNew common script implementing local build logic for stress tests
src/libraries/Common/tests/System/Net/StressTests/build-local.ps1New common PowerShell script implementing local build logic
eng/pipelines/libraries/stress/ssl.ymlAdds release/*.0 branch trigger, updates dump share handling, removes Windows workarounds
eng/pipelines/libraries/stress/http.ymlAdds release/*.0 branch trigger, consolidates dump share handling, removes Windows workarounds
eng/docker/libraries-sdk.windows.DockerfileUpdates to 8.0 SDK, uses new dotnet-install URL, removes old ASP.NET versions
eng/docker/libraries-sdk.linux.DockerfileUpdates to CentOS Stream 9, uses new dotnet-install URL, removes existing SDK
eng/docker/build-docker-sdk.shAdds dynamic version detection from Versions.props, fixes comparison operator
eng/docker/build-docker-sdk.ps1Adds dynamic version detection from Versions.props, adds VERSION build arg

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan
MihaZupanforce-pushed the mihazupan/test/net8-stress branch from 185106d to 211064eCompareDecember 9, 2025 13:42
@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries stress-http

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MihaZupan
MihaZupanforce-pushed the mihazupan/test/net8-stress branch from 211064e to f4af60aCompareDecember 9, 2025 15:30
@MihaZupan

Copy link
Copy Markdown
MemberAuthor

/ba-g All failures are "The macOS-13 based runner images are now retired."

@MihaZupan

Copy link
Copy Markdown
MemberAuthor

This is an infra-only change for HTTP and SSL stress tests. Tell mode.

@MihaZupanMihaZupan added the Servicing-approved Approved for servicing release label Dec 9, 2025
@MihaZupan
MihaZupan merged commit ff97795 into release/8.0-stagingDec 9, 2025
144 of 177 checks passed
@MihaZupan
MihaZupan deleted the mihazupan/test/net8-stress branch December 18, 2025 16:48
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Jan 18, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-System.NetServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@MihaZupan@SamMonoRT@ManickaP