From 8cc838fe128163fad7405779e03a43b1413cc005 Mon Sep 17 00:00:00 2001 From: ManickaP Date: Thu, 16 Feb 2023 12:18:38 +0100 Subject: [PATCH 1/3] Attempt at using newer image to allow H/3 Windows stress --- eng/docker/libraries-sdk.linux.Dockerfile | 2 +- eng/docker/libraries-sdk.windows.Dockerfile | 2 +- eng/pipelines/libraries/stress/http.yml | 12 ++++++++++++ .../tests/StressTests/HttpStress/Dockerfile | 2 +- .../tests/StressTests/HttpStress/Program.cs | 2 +- .../tests/StressTests/HttpStress/windows.Dockerfile | 2 +- 6 files changed, 17 insertions(+), 5 deletions(-) diff --git a/eng/docker/libraries-sdk.linux.Dockerfile b/eng/docker/libraries-sdk.linux.Dockerfile index c6738d098006d0..a06bd46fcb729a 100644 --- a/eng/docker/libraries-sdk.linux.Dockerfile +++ b/eng/docker/libraries-sdk.linux.Dockerfile @@ -1,6 +1,6 @@ # Builds and copies library artifacts into target dotnet sdk image ARG BUILD_BASE_IMAGE=mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-f39df28-20191023143754 -ARG SDK_BASE_IMAGE=mcr.microsoft.com/dotnet/nightly/sdk:6.0-bullseye-slim +ARG SDK_BASE_IMAGE=mcr.microsoft.com/dotnet/nightly/sdk:7.0-bullseye-slim FROM $BUILD_BASE_IMAGE as corefxbuild diff --git a/eng/docker/libraries-sdk.windows.Dockerfile b/eng/docker/libraries-sdk.windows.Dockerfile index 639714fc75d0d9..444b0b4c94d452 100644 --- a/eng/docker/libraries-sdk.windows.Dockerfile +++ b/eng/docker/libraries-sdk.windows.Dockerfile @@ -1,6 +1,6 @@ # escape=` # Simple Dockerfile which copies clr and library build artifacts into target dotnet sdk image -ARG SDK_BASE_IMAGE=mcr.microsoft.com/dotnet/nightly/sdk:6.0 +ARG SDK_BASE_IMAGE=mcr.microsoft.com/dotnet/nightly/sdk:7.0-nanoserver-ltsc2022 FROM $SDK_BASE_IMAGE as target SHELL ["pwsh", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] diff --git a/eng/pipelines/libraries/stress/http.yml b/eng/pipelines/libraries/stress/http.yml index 801c73cedbdd2b..11e465d8a04c0a 100644 --- a/eng/pipelines/libraries/stress/http.yml +++ b/eng/pipelines/libraries/stress/http.yml @@ -130,6 +130,18 @@ extends: name: disableFirewall displayName: Disable Firewall + - powershell: | + cd '$(httpStressProject)' + $env:CLIENT_DUMPS_SHARE="$(Build.ArtifactStagingDirectory)/dumps/client/3.0" + $env:SERVER_DUMPS_SHARE="$(Build.ArtifactStagingDirectory)/dumps/server/3.0" + New-Item -Force $env:CLIENT_DUMPS_SHARE -ItemType Directory + New-Item -Force $env:SERVER_DUMPS_SHARE -ItemType Directory + $env:HTTPSTRESS_CLIENT_ARGS = "$env:HTTPSTRESS_CLIENT_ARGS -http 3.0" + $env:HTTPSTRESS_SERVER_ARGS = "$env:HTTPSTRESS_SERVER_ARGS -http 3.0" + docker-compose up --abort-on-container-exit --no-color + displayName: Run HttpStress - HTTP 3.0 + condition: and(eq(variables['buildRuntime.succeeded'], 'true'), eq(variables['buildStress.succeeded'], 'true')) + - powershell: | cd '$(httpStressProject)' $env:CLIENT_DUMPS_SHARE="$(Build.ArtifactStagingDirectory)/dumps/client/2.0" diff --git a/src/libraries/System.Net.Http/tests/StressTests/HttpStress/Dockerfile b/src/libraries/System.Net.Http/tests/StressTests/HttpStress/Dockerfile index 762c1aa08ea62d..bae8fa595ae019 100644 --- a/src/libraries/System.Net.Http/tests/StressTests/HttpStress/Dockerfile +++ b/src/libraries/System.Net.Http/tests/StressTests/HttpStress/Dockerfile @@ -1,4 +1,4 @@ -ARG SDK_BASE_IMAGE=mcr.microsoft.com/dotnet/nightly/sdk:6.0-bullseye-slim +ARG SDK_BASE_IMAGE=mcr.microsoft.com/dotnet/nightly/sdk:7.0-bullseye-slim FROM $SDK_BASE_IMAGE # Build latest msquic locally diff --git a/src/libraries/System.Net.Http/tests/StressTests/HttpStress/Program.cs b/src/libraries/System.Net.Http/tests/StressTests/HttpStress/Program.cs index b411d637a54f14..a1a2769273591b 100644 --- a/src/libraries/System.Net.Http/tests/StressTests/HttpStress/Program.cs +++ b/src/libraries/System.Net.Http/tests/StressTests/HttpStress/Program.cs @@ -47,7 +47,7 @@ private static bool TryParseCli(string[] args, [NotNullWhen(true)] out Configura cmd.AddOption(new Option("-maxRequestUriSize", "Max query string length support by the server.") { Argument = new Argument("numChars", 5000) }); cmd.AddOption(new Option("-maxRequestHeaderCount", "Maximum number of headers to place in request") { Argument = new Argument("numHeaders", 90) }); cmd.AddOption(new Option("-maxRequestHeaderTotalSize", "Max request header total size.") { Argument = new Argument("numBytes", 1000) }); - cmd.AddOption(new Option("-http", "HTTP version (1.1 or 2.0)") { Argument = new Argument("version", HttpVersion.Version20) }); + cmd.AddOption(new Option("-http", "HTTP version (1.1 or 2.0 or 3.0)") { Argument = new Argument("version", HttpVersion.Version20) }); cmd.AddOption(new Option("-connectionLifetime", "Max connection lifetime length (milliseconds).") { Argument = new Argument("connectionLifetime", null) }); cmd.AddOption(new Option("-ops", "Indices of the operations to use") { Argument = new Argument("space-delimited indices", null) }); cmd.AddOption(new Option("-xops", "Indices of the operations to exclude") { Argument = new Argument("space-delimited indices", null) }); diff --git a/src/libraries/System.Net.Http/tests/StressTests/HttpStress/windows.Dockerfile b/src/libraries/System.Net.Http/tests/StressTests/HttpStress/windows.Dockerfile index 50d38186a2aa78..f2c2e90e9c21e6 100644 --- a/src/libraries/System.Net.Http/tests/StressTests/HttpStress/windows.Dockerfile +++ b/src/libraries/System.Net.Http/tests/StressTests/HttpStress/windows.Dockerfile @@ -1,5 +1,5 @@ # escape=` -ARG SDK_BASE_IMAGE=mcr.microsoft.com/dotnet/nightly/sdk:6.0-nanoserver-1809 +ARG SDK_BASE_IMAGE=mcr.microsoft.com/dotnet/nightly/sdk:7.0-nanoserver-ltsc2022 FROM $SDK_BASE_IMAGE # Use powershell as the default shell From 35c8d63606e14a87b9c6939800488deb7628edb3 Mon Sep 17 00:00:00 2001 From: ManickaP Date: Mon, 20 Feb 2023 12:19:38 +0100 Subject: [PATCH 2/3] Failing docker experiments --- eng/pipelines/libraries/stress/http.yml | 2 +- .../System.Net.Http/tests/StressTests/HttpStress/Program.cs | 1 + .../tests/StressTests/HttpStress/windows.Dockerfile | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/libraries/stress/http.yml b/eng/pipelines/libraries/stress/http.yml index 11e465d8a04c0a..c8037ea2cc76a9 100644 --- a/eng/pipelines/libraries/stress/http.yml +++ b/eng/pipelines/libraries/stress/http.yml @@ -32,7 +32,7 @@ extends: jobs: - job: linux displayName: Docker Linux - timeoutInMinutes: 180 + timeoutInMinutes: 240 variables: DUMPS_SHARE_MOUNT_ROOT: "/dumps-share" pool: diff --git a/src/libraries/System.Net.Http/tests/StressTests/HttpStress/Program.cs b/src/libraries/System.Net.Http/tests/StressTests/HttpStress/Program.cs index a1a2769273591b..932ab673cf34db 100644 --- a/src/libraries/System.Net.Http/tests/StressTests/HttpStress/Program.cs +++ b/src/libraries/System.Net.Http/tests/StressTests/HttpStress/Program.cs @@ -28,6 +28,7 @@ public enum ExitCode { Success = 0, StressError = 1, CliError = 2 }; public static async Task Main(string[] args) { + Console.WriteLine($"Arguments ({args.Length}): {String.Join(" ", args.Select(arg => $"|{arg}|({arg.Length})"))}"); if (!TryParseCli(args, out Configuration? config)) { return (int)ExitCode.CliError; diff --git a/src/libraries/System.Net.Http/tests/StressTests/HttpStress/windows.Dockerfile b/src/libraries/System.Net.Http/tests/StressTests/HttpStress/windows.Dockerfile index f2c2e90e9c21e6..877d59e142a51d 100644 --- a/src/libraries/System.Net.Http/tests/StressTests/HttpStress/windows.Dockerfile +++ b/src/libraries/System.Net.Http/tests/StressTests/HttpStress/windows.Dockerfile @@ -28,4 +28,4 @@ ENV CONFIGURATION=$CONFIGURATION ENV HTTPSTRESS_ARGS="" CMD & C:/live-runtime-artifacts/testhost/net$env:VERSION-windows-$env:CONFIGURATION-x64/dotnet.exe exec --roll-forward Major ` - ./bin/$env:CONFIGURATION/net$env:VERSION/HttpStress.dll $env:HTTPSTRESS_ARGS.Split() \ No newline at end of file + ./bin/$env:CONFIGURATION/net$env:VERSION/HttpStress.dll $env:HTTPSTRESS_ARGS.Split(' ',[System.StringSplitOptions]::RemoveEmptyEntries) \ No newline at end of file From 53515c781dc147e828122cc880221dd6034b9348 Mon Sep 17 00:00:00 2001 From: ManickaP Date: Fri, 24 Feb 2023 09:28:51 +0100 Subject: [PATCH 3/3] Removed testing print --- .../System.Net.Http/tests/StressTests/HttpStress/Program.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/libraries/System.Net.Http/tests/StressTests/HttpStress/Program.cs b/src/libraries/System.Net.Http/tests/StressTests/HttpStress/Program.cs index 932ab673cf34db..a1a2769273591b 100644 --- a/src/libraries/System.Net.Http/tests/StressTests/HttpStress/Program.cs +++ b/src/libraries/System.Net.Http/tests/StressTests/HttpStress/Program.cs @@ -28,7 +28,6 @@ public enum ExitCode { Success = 0, StressError = 1, CliError = 2 }; public static async Task Main(string[] args) { - Console.WriteLine($"Arguments ({args.Length}): {String.Join(" ", args.Select(arg => $"|{arg}|({arg.Length})"))}"); if (!TryParseCli(args, out Configuration? config)) { return (int)ExitCode.CliError;