Skip to content

HttpStress and SslStress builds are broken #60769

Closed
@antonfirsov

Description

@antonfirsov

HTTP and SSL stress builds are currently broken on Windows:

https://dev.azure.com/dnceng/public/_build/results?buildId=1434301&view=logs&j=2d2b3007-3c5c-5840-9bb0-2b1ea49925f3&t=8ca65746-3bfa-57bf-9141-d805b5d39db5

https://dev.azure.com/dnceng/public/_build/results?buildId=1434299&view=logs&j=2d2b3007-3c5c-5840-9bb0-2b1ea49925f3&t=ac0b0b0f-051f-52f7-8fb3-a7e384b0dde9

To run stress tests with the current bits on main, our dockerfiles overwrite the 6.0 runtime preinstalled to the image with the locally built 7.0.0 testhost runtime:

COPY `
$TESTHOST_LOCATION\$TFM-$OS-$CONFIGURATION-$ARCH\shared\$COREFX_SHARED_FRAMEWORK_NAME\$SOURCE_COREFX_VERSION\ `
$TARGET_SHARED_FRAMEWORK\$COREFX_SHARED_FRAMEWORK_NAME\$TARGET_COREFX_VERSION\

This typically works, but now it looks like it is problematic in some cases. Note that for some reason this is only broken on Windows now.

To overcome this issue, I tried to install the 7.0 nightly SDK with dotnet-install.ps1 and replace the 7.0 runtime bits with the locally built ones as recommended by @ManickaP in her #60364 (comment), but unfortunately that leads to another build-time dll resolution error:

C:\Program Files\dotnet\sdk\7.0.100-alpha.1.21518.14\NuGet.targets(130,5): error : Unable to load the service index for source https://api.nuget.org/v3/index.json. [C:\app\Htt
pStress.sln]
C:\Program Files\dotnet\sdk\7.0.100-alpha.1.21518.14\NuGet.targets(130,5): error :   Could not load file or assembly 'System.Diagnostics.DiagnosticSource, Version=7.0.0.0, Cul
ture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The system cannot find the file specified. [C:\app\HttpStress.sln]

I think the best way to overcome this is problem would be to separate building and execution of the stress project. For the former we can use the pre-installed SDK. For the latter we can utilize testhost the same way we do in normal functional tests, however I'm not an expert on SDK internals, so I don't know how to achieve the separation, the way dotnet test works in the runtime repo is a black box to me.

@ViktorHofer @safern @Anipik any tips or insights that can help us? (Either solving the dll resolution issues or using testhost runtime for executing the stress tests without touching the installed SDK.)

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions