Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.
/ corefx Public archive

Initial SslStream stress app work #42560

Closed
wants to merge 12 commits into from

Conversation

eiriktsarpalis
Copy link
Member

Adds a console application for stress testing the SslStream class. The work somewhat imitates the setup that we already have in the http stress app: the app will open a fixed number of concurrent connections and run the stress scenaria for a fixed time period per connection (defaults at 2 minutes).

Unlike http2 there are no multiplexing concerns here, so the potential for stress tests seems less interesting. I've only included a single scenario for the moment: sending and echoing back of random data with basic integrity checks, using randomized permutations of Write, WriteAsync, WriteByte and Flush methods. I haven't been able to reproduce failures so far, though I haven't run the app for extensive periods of time yet.

@eiriktsarpalis eiriktsarpalis added tenet-reliability Reliability/stability related issue (stress, load problems, etc.) area-System.Net.Security labels Nov 12, 2019
@eiriktsarpalis eiriktsarpalis added this to the 5.0 milestone Nov 12, 2019
@eiriktsarpalis eiriktsarpalis requested review from stephentoub and a team November 12, 2019 15:45
@eiriktsarpalis
Copy link
Member Author

/azp run corefx-ci

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

namespace SslStress.Utils
{
// Adapted from https://github.com/dotnet/corefx/blob/41cd99d051102be4ed83f4f9105ae9e73aa48b7c/src/Common/tests/System/IO/Compression/CRC.cs
public static class CRC
Copy link
Member

Choose a reason for hiding this comment

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

What adaptation was needed? Why can't we just have a single shared implementation?

Copy link
Member Author

Choose a reason for hiding this comment

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

In this case spanification. Note that this comment was copied from the stress project which also added a couple of string methods.

Copy link
Member

Choose a reason for hiding this comment

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

Can we make the changes to the shared implementation and use the spanified version in the original source as well?

Copy link
Member Author

Choose a reason for hiding this comment

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

Yes, but it's unlikely I'll get this done before the cutoff.

@ViktorHofer ViktorHofer added the * NO MERGE * The PR is not ready for merge yet (see discussion for detailed reasons) label Nov 14, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-System.Net.Security * NO MERGE * The PR is not ready for merge yet (see discussion for detailed reasons) tenet-reliability Reliability/stability related issue (stress, load problems, etc.)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants